Python 在pandas中具有两个json索引的数据帧
我正在尝试将pandas的数据帧转换为jsonPython 在pandas中具有两个json索引的数据帧,python,json,pandas,to-json,Python,Json,Pandas,To Json,我正在尝试将pandas的数据帧转换为json y=pd.read_csv('testx.csv',encoding='utf-8') y.columns = ['i','city','language','words'] del y['i'] y = y.set_index(['city','language']) z=y.to_json(orient='index') 我的json不正确,引号中有[和{。我做错了什么 {"["Moscow","Russian"]":{"words":330
y=pd.read_csv('testx.csv',encoding='utf-8')
y.columns = ['i','city','language','words']
del y['i']
y = y.set_index(['city','language'])
z=y.to_json(orient='index')
我的json不正确,引号中有[
和{
。我做错了什么
{"["Moscow","Russian"]":{"words":3300000},"["Moscow","English"]":{"words":550000},"["Moscow","French"]":{"words":100000},"
["London","English"]":{"words":9100000},"["London","Russian"]":{"words":150000},"["London","Spanish"]":{"words":90000},...
理想情况下,数据帧:
city language words
Moscow Russian 3300000
Moscow English 550000
Moscow French 100000
London English 9100000
London Russian 150000
London Spanish 90000
...
必须转换为以下格式:
[
{
"city": "Moscow",
"language": {
"Russian": 3300000,
"English": 550000,
"French": 100000
}
},
{
"city": "London",
"language": {
"English": 9100000,
"Russian": 150000,
"Spanish": 90000
}
}
]
您是否愿意使用dict理解来明确地设计输出?然后您可以使用
json.dumps
将python dict转换为json。遗憾的是,您所需的格式超出了to_json支持的标准输出
[{"city":i,
"language":{l:n
for l,n in zip(g['language'], g['words'])}}
for i,g in df.groupby('city')]
[{'city': 'London',
'language': {'English': 9100000, 'Russian': 150000, 'Spanish': 90000}},
{'city': 'Moscow',
'language': {'English': 550000, 'French': 100000, 'Russian': 3300000}}]
谢谢。不幸的是,我在尝试执行json.dumps时出错了
导入json.dumps(dict_to_json_文件)
错误:raise TypeError(repr(o)+“is not json serializable”)TypeError:3208不可json serializable
hmm奇怪,可能检查您的数据类型,确保整数列实际上是int
?