【问题标题】:How to store the data in Json pandas如何将数据存储在 Json pandas 中
【发布时间】:2020-04-17 08:28:22
【问题描述】:

我有数据存储在 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"}]

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

【问题讨论】:

  • 所需的格式不像 JSON。
  • 是的,因为没有键->值结构
  • 兄弟,我对它进行了一些更改。再看看这个问题。你会得到它

标签: python json python-3.x pandas


【解决方案1】:

您发布的不是有效的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 模块将其写入文件。

【讨论】:

    猜你喜欢
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2016-11-03
    相关资源
    最近更新 更多