Python 将JSON转换为CSV文件
我来过这里好几次,但似乎都没办法解决。我正在尝试将JSON转换为CSV文件。我不断发现这个错误: 从None引发JSONDecodeError(“预期值”,s,err.value)。JSONDecodeError:预期值。 请帮忙。 这就是我试图使用的代码Python 将JSON转换为CSV文件,python,json,pandas,csv,Python,Json,Pandas,Csv,我来过这里好几次,但似乎都没办法解决。我正在尝试将JSON转换为CSV文件。我不断发现这个错误: 从None引发JSONDecodeError(“预期值”,s,err.value)。JSONDecodeError:预期值。 请帮忙。 这就是我试图使用的代码 import json import pandas as pd # load json object with open('C:/Users/gavin/OneDrive/Desktop/4th Year/DAD project/mas
import json
import pandas as pd
# load json object
with open('C:/Users/gavin/OneDrive/Desktop/4th Year/DAD project/mass.json', 'r') as f:
d = json.load(f)
multi = []; inner = {}
def recursive_extract(i):
global multi, inner
if type(i) is list:
if len(i) == 1:
for k,v in i[0].items():
if type(v) in [list, dict]:
recursive_extract(v)
else:
inner[k] = v
else:
multi = i
if type(i) is dict:
for k,v in i.items():
if type(v) in [list, dict]:
recursive_extract(v)
else:
inner[k] = v
recursive_extract(d['data'])
data_dict = []
for i in multi:
tmp = inner.copy()
tmp.update(i)
data_dict.append(tmp)
df = pd.DataFrame(data_dict)
df.to_csv('Output.csv')
更新:这是我试图将其转换为CSV文件的JSON。我不得不删除一些记录,这样堆栈溢出就可以让我发布我的问题
{
"data": [
{
"value": 4070,
"data_year": 1998,
"month_num": 0,
"key": "Unknown"
},
{
"value": 1095,
"data_year": 1992,
"month_num": 0,
"key": "Unknown"
},
{
"value": 11277,
"data_year": 2017,
"month_num": 0,
"key": "Unknown"
},
{
"value": 3481,
"data_year": 1993,
"month_num": 0,
"key": "Unknown"
},
{
"value": 9402,
"data_year": 2013,
"month_num": 0,
"key": "Unknown"
},
{
"value": 473,
"data_year": 1991,
"month_num": 0,
"key": "Unknown"
},
{
"value": 9587,
"data_year": 1998,
"month_num": 0,
"key": "None"
},
{
"value": 244,
"data_year": 1992,
"month_num": 0,
"key": "None"
}
],
"precise_data": []
}
您可能能够使用pandas内置功能将json文件读取到pandas数据帧
df=pd.read_json("temp.json")
读取文件后,您可以通过以下方式将其另存为csv文件:
df.to_csv('temp.csv' , index = False)
如果这不起作用
您可以尝试以下任何一种方法,根据json的结构读取json
data= pd.read_json('Data.json', lines=True)
data= pd.read_json('Data.json', lines=True, orient='records')
data= pd.read_json('Data.json', orient=str)
你能添加一个json文件的片段吗?只是在那里添加了一些。刚刚尝试了一下,得到了这个错误:loads(json,precise\u float=self.precise\u float),dtype=None ValueError:Expected object或values你确定你的json没有格式错误吗?如果没有,你可以尝试下面的任何一种方法,比如data=pd.read\u json('data.json',lines=True)data=pd.read_json('data.json',lines=True,orient='records')data=pd.read_json('data.json',orient=str)第二个似乎解决了这个问题,但现在它给了我一个关键错误,但关键是正确的。