Python的DataFrames到JSon

时间:2017-01-08 17:56:01

标签: python json dataframe

我想将我的Python脚本输出存储到下面的JSon格式:

 [{
   "ids": "1",
   "result1": ["1","2","3","4"],
   "result2": ["4","5","6","1"]
}, 
{
  "ids": "2",
  "result1": ["3","4"],
  "result2": ["4","5","6","1"]
}]

我的代码如下

for i in df.id.unique():
    ids = i
    results1 = someFunction(i)
    results2 = someFunction2(i)
    df_result_int = ["ids : %s" %ids , "results1 : %s" %results1, "results2 : %s" %results2]
    df_results.append(df_result_int)

jsonData = json.dumps(df_results)

with open('JSONData.json', 'w') as f:
     json.dump(jsonData, f)

someFunction()和someFunction2()返回一个列表。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

你不应该手动将列表转换为字符串,json.dumps会为你做。请改用字典。这是一个例子:

df_results = []
results1 = [1,1]
results2 = [2,2]
df_result_int = {"ids" : 1, "results1" : results1, "results2" : results2}
df_results.append(df_result_int)

json.dumps(df_results)

这将导致:

[{"results2": [2, 2], "ids": 1, "results1": [1, 1]}]

答案 1 :(得分:0)

pandas数据帧有一种方法,允许您将数据帧直接转储到json文件。这里是文档的链接:
to_json
你可以使用像

这样的东西
df.reset_index().to_json(orient='records')    

其中df是您之前已经进行过某种操作的数据帧(例如您希望应用的函数等),它取决于您在json文件中所需的信息以及如何安排。