Python 将Json转换为CSV
我有这种格式的json,希望转换成CSV文件Python 将Json转换为CSV,python,json,file,parsing,export-to-csv,Python,Json,File,Parsing,Export To Csv,我有这种格式的json,希望转换成CSV文件 { "extrapolationLevel": 1, "columnNames": [ "name", "usersession.country", "application", "usersession.osFamily", "usersession.startTime", "visuallyCompleteTime" ], "values": [ [ "pdp",
{
"extrapolationLevel": 1,
"columnNames": [
"name",
"usersession.country",
"application",
"usersession.osFamily",
"usersession.startTime",
"visuallyCompleteTime"
],
"values": [
[
"pdp",
"Serbia",
"Desktop",
"Windows",
1573215462076,
1503
],
]
}
我想把这个json转换成CSV格式这是我的脚本
import csv
import json
with open('response_1573222394875.json') as infile:
Data = json.loads(infile.read())
with open("q.csv", "w") as outfile:
f = csv.writer(outfile)
f.writerow(["name","usersession.country","application","usersession.osFamily","usersession.startTime","visuallyCompleteTime"])
f.writerow([Data["name"], Data["usersession.country"],
Data["application"],
Data["usersession.osFamily"],
Data["usersession.startTime"],
Data["visuallyCompleteTime"]])
预期产量
name usersession.country application usersession.osFamilyusersession.startTime visuallyCompleteTime
pdp Serbia Desktop Windows 1573215462076 1503
plp us APP Windows 1573215462076 1548
startpage uk Site Windows 1573215462076 1639
product india Desktop Windows 1573215462076 3194
pdp Vietnam APP Windows 1573215462076 3299
有人能帮我吗 数据的键是
“extractionlevel”
,“columnNames”
和“values”
,除此之外没有其他键<例如,code>Data[“usersession.country”]没有意义,因为没有包含该键的字典。这些值只存储在列表中。以下是您需要做的所有事情:
打开(“q.csv”、“w”)作为输出文件:
f=csv.writer(输出文件)
f、 writerow(数据[“columnNames”])
f、 writerows(数据[“值”])
[“产品”、“印度”、“HM桌面”、“Windows”,1573254620763194],“pdp”、“越南”、“HM桌面”、“Windows”,1573254620763299]}
import json
json_str = '''
{
"extrapolationLevel": 1,
"columnNames": [
"name",
"usersession.country",
"application",
"usersession.osFamily",
"usersession.startTime",
"visuallyCompleteTime"
],
"values": [
[
"pdp",
"Serbia",
"Desktop",
"Windows",
1573215462076,
1503
]
]
}
'''
data = json.loads(json_str)
csv_row = lambda v: ('"{}",' * len(v)).format(*v)[:-1] # remove trailing comma
print(csv_row(data["columnNames"]))
for value in data["values"]:
print(csv_row(value))