Saturday, May 17, 2014

Visualize This. Ch. 2 - Switch Between Data Formats

Here are more fixed codes for Chapter 2. I use Python 3.4.0 with BeautifulSoup 4.3.2.

1. CSV to XML
import csv
reader = csv.reader(open('wunder-data.txt', 'r'), delimiter = ',')

f = open('wunder-data.xml','w')
f.write("\n")

for row in reader:
 f.write("\t\n")
 f.write("\t\t" + row[0] + "\n")
 f.write("\t\t" + row[1] + "\n")
 f.write("\t\n")
 
f.write("")

f.close()
2. XML to CSV
from bs4 import BeautifulSoup

f = open('wunder-data.xml','r')
xml = f.read()

f = open('wunder-data.csv','w')

soup = BeautifulSoup(xml)
observations = soup.findAll('observation')

for d in range (0, len(observations)):
 f.write(observations[d].date.string + "," + observations[d].max_temperature.string + "\n")

f.close()
3. CSV to JSON
import csv
reader = csv.reader(open('wunder-data.txt', 'r'), delimiter = ",")

f = open('wunder-data.json','w')
f.write("{\n  \"observations\": [\n")
rows_so_far = 0
for row in reader:
 rows_so_far += 1
 
 f.write("    {\n")
 f.write("      \"date\": \"" + row[0] + "\",\n")
 f.write("      \"temperature\": \"" + row[1] + "\"\n")
 
 if rows_so_far < 365:
  f.write("    },\n")
 else:
  f.write("    }\n")
  
f.write("  ]\n}")
f.close()

No comments :

Post a Comment