首页 > 解决方案 > 如何将数据存储在 Json pandas 中

问题描述

我在excel表中存储了数据。现在我想以 json 格式存储数据。我使用不同的方法,df.to_json(orient=’records’) df.to_json(orient=’index’)但我没有得到我想要的结果。下面是例子

name    First_month_salary  Second_month_salary third_month_salary  fourth_month_salary
abc           15000                25000              14444                60000
fgh           15000                25000              14444                60000
xyz           15000                25000              14444                60000

我想要以下格式的输出:

abc : [{"value1" : "1500" , "value1.1" : "1500" ,"value1.2" : "1500"  }, {"value2" : "25000" , "value2.1" : "25000" , "value2.2" : "25000" } , {"value3" : "14444" , "value3.1" : "14444"  , "value3.2" : "14444"}, {"value4" : "60000" , "value4.1" : "60000" , "value4.2" : "60000"}]
fgh : [{"value1" : "1500" , "value1.1" : "1500" ,"value1.2" : "1500"  }, {"value2" : "25000" , "value2.1" : "25000" , "value2.2" : "25000" } , {"value3" : "14444" , "value3.1" : "14444"  , "value3.2" : "14444"}, {"value4" : "60000" , "value4.1" : "60000" , "value4.2" : "60000"}]
xyz : [{"value1" : "1500" , "value1.1" : "1500" ,"value1.2" : "1500"  }, {"value2" : "25000" , "value2.1" : "25000" , "value2.2" : "25000" } , {"value3" : "14444" , "value3.1" : "14444"  , "value3.2" : "14444"}, {"value4" : "60000" , "value4.1" : "60000" , "value4.2" : "60000"}]

当我转换它时。我得到这样的输出:

[{"name" : "abc" ,  {"First_month_salary" :"1500" ,"second_month_salary" : "25000", "third_month_salary" :"14444", "fourth_month_salary" : "60000"},
{"name" : "fgh" , {"First_month_salary" :"1500" ,"second_month_salary" : "25000", "third_month_salary" :"14444", "fourth_month_salary" : "60000"},
{"name" : "xyz" , {"First_month_salary" :"1500" ,"second_month_salary" : "25000", "third_month_salary" :"14444", "fourth_month_salary" : "60000"}]

我想要的只是我的输出中不需要列名

标签: pythonjsonpython-3.xpandas

解决方案


您发布的不是有效的 JSON,您可以自己将其粘贴到在线解析器中进行确认。

如果我不得不猜测,看起来你想要一个字典,其中键是“名称”的值,值是工资列表。

{'abc': [1500 ,25000, 14444, 60000],
...
}

如果这是您正在寻找的,那么您可以执行以下操作:

import json

df = pd.DataFrame({'Name': ['abc', 'def', 'ghi'], 'sal1': [10, 20, 30], 'sal2': [100, 200, 300], 'sal3': [1000, 2000, 3000]})

d = {}
for idx, row in df.set_index('Name').iterrows():
    d[idx] = row.values.tolist()

d 的输出将是

{'abc': [10, 100, 1000], 'def': [20, 200, 2000], 'ghi': [30, 300, 3000]}

json然后,如果需要,您可以使用该模块将其写入文件。


推荐阅读