How To Convert Json To Csv In Python
Following is my json file input {'userID': '679d3bad-155e-4b39-9ff7-7d564f408942', 'Is salary credited before 5th': 'Yes', 'Avg Salary of last 3 months': 15453.33, 'Avg Salary of l
Solution 1:
You can also use pandas to handle dataframe,
dct = {"userID": "679d3bad-155e-4b39-9ff7-7d564f408942", "Is salary credited before 5th": "Yes", "Avg Salary of last 3 months": 15453.33,
"Avg Salary of last 6 months": 15290.5, "Avg Balance before salary of last 3 months": 113.15, "Avg Balance before salary of last 6 months": 105.22}
import pandas as pddf= pd.DataFrame.from_records(dct, index=[0])
df.to_csv('outputfile.csv')
Solution 2:
BankData
is a dict you do not need to iterate it. You can directly access the values using the key.
Ex:
import csv
import json
withopen('/Users/vrindabv/Documents/PycharmProjects/BankStatementEngine/test.json') as infile:
BankData = json.loads(infile.read())
withopen("/Users/vrindabv/Documents/PycharmProjects/BankStatementEngine/test.csv", "w") as outfile:
f = csv.writer(outfile)
f.writerow(["userID", "Is salary credited before 5th", "Avg Salary of last 3 months", "Avg Salary of last 6 months", "Avg Balance before salary of last 3 months", "Avg Balance before salary of last 6 months"])
f.writerow([BankData["userID"], BankData["Is salary credited before 5th"],
BankData["Avg Salary of last 3 months"],
BankData["Avg Salary of last 6 months"],
BankData["Avg Balance before salary of last 3 months"],
BankData["Avg Balance before salary of last 6 months"]])
Solution 3:
You can do this: Read your JSON and write-in a CSV file with importing json
and csv
modules
import json, csv
from collections import OrderedDict #To maintain key value pair order
_json=json.loads(open('data.json', 'r').read(), object_pairs_hook=OrderedDict)
out=open('converted.csv', 'w')
writer = csv.writer(out) #create a csv.write
writer.writerow(_json[0].keys()) # header rowfor row in _json:
writer.writerow(row.values())
Solution 4:
GeekSambhu's solution worked for me with a minor modification. I modified it a little because like Vinsent, I saw a KeyError. People may be getting the KeyError if the JSON structure has a top level object holding the array of the rows of data (this is considered a JSON best practice). Assuming a top level object called 'data', you would change only two lines of code of GeekSambhu's solution.
writer.writerow(_json['data'][0].keys()) # header row for row in _json['data']:
Post a Comment for "How To Convert Json To Csv In Python"