如何在python中将json转换为csv?
Posted
技术标签:
【中文标题】如何在python中将json转换为csv?【英文标题】:How to convert json to csv in python? 【发布时间】:2020-12-19 11:27:06 【问题描述】:我有一个嵌套的 json 文件可以将其转换为 csv 。下面是 json 格式,
['year': '2020' ,
('data', ['location': 'coordinates': 'lat': 22.0, 'lon': -33.0,
'times': 'date': '2020-08-30', 'time': '12:00',
'values': 'surface': 45, 'wave': 6.8, 'temp': 283, 'height': 1.8,
'location': 'coordinates': 'lat': 22, 'lon': -33,
'times': 'date': '2020-08-30', 'time': '13:00',
'values': 'surface': 42, 'wave': 6.7, 'temp': 283.1, 'height': 2.88)]
这些json格式要转换成csv:
需要的输出如下:
lat lon date time surface wave temp height
22 -33 2020-08-30 12:00 45 6.8 283 1.8
22 -33 2020-08-30 13.00 42 6.7 283.1 2.88
【问题讨论】:
你试过什么?你被困在哪里了? 您发布的json无效 【参考方案1】:如果您设法将嵌套的 JSON 更改为以下内容:
"year": 2020,
"data":
"location":
"coordinates":
"lat": 22.0,
"lon": -33.0
,
"times":
"date": "2020-08-30",
"time": "12:00"
,
"values":
"surface": "2020-08-30",
"wave": "12:00",
"temp": 283,
"height": 1.8
,
...
您可以使用此代码转换为csv
:
import csv
import json
x = """[
"year": 2020,
"data":
"location":
"coordinates":
"lat": 22.0,
"lon": -33.0
,
"times":
"date": "2020-08-30",
"time": "12:00"
,
"values":
"surface": "2020-08-30",
"wave": "12:00",
"temp": 283,
"height": 1.8
,
]"""
x = json.loads(x)
f = csv.writer(open("Example.csv", "wb+"))
# Write CSV Header, If you dont need that, remove this line
f.writerow(["year", "data", "location", "times", "values"])
for x in x:
f.writerow([x["year"],
x["data"],
x["location"]["coordinates"]["lat"],
x["location"]["coordinates"]["lon"],
x["times"]["date"],
x["times"]["time"],
x["values"]["surface"],
x["values"]["wave"],
x["values"]["temp"],
x["values"]["height"]])
【讨论】:
for x in x
这是什么?
写更长的for循环的另一种方式以上是关于如何在python中将json转换为csv?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 HugSQL 结果中将返回的地图转换为 json csv
在 Python 中将嵌套的 JSON 转换为 CSV 文件
如何在 Python 中将多个 .txt 文件转换为 .csv 文件