Python数据帧到JSon
我想将Python脚本输出存储为以下JSon格式:Python数据帧到JSon,python,json,dataframe,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 = so
[{
"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()返回一个列表
提前谢谢。您不应该手动将列表转换为字符串,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]}]
您不应该手动将列表转换为字符串,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]}]
有一种数据帧方法允许您将数据帧直接转储到json文件。此处是指向文档的链接:
你可以用像这样的东西
df.reset_index().to_json(orient='records')
其中,df是您之前在其上进行过某种操作的数据帧(例如,您希望应用的函数等),它取决于您希望在json文件中获得的信息以及如何排列。有一种数据帧方法,允许您将数据帧直接转储到json文件。此处是指向文档的链接:
你可以用像这样的东西
df.reset_index().to_json(orient='records')
其中,df是您以前在其上进行过某种操作的数据帧(例如,您希望应用的函数等),它取决于您在json文件中想要的信息以及排列方式。谢谢您的回答,我尝试过使用它,但重置索引会导致问题。您只需删除
重置索引()
part,只需使用df.to_json(orient='records')
。但是,如果不对您已有的代码进行太多修改,那么另一个答案可能会更快地满足您的需求,因为我们不知道数据布局……谢谢您的回答,我尝试使用它,但重置索引会导致问题。您只需删除reset\u index()
部分,然后使用df.to\u json(orient='records'))
。但是,由于我们不知道数据布局,可能另一个答案会更快地满足您的需求,而不会对您已有的代码进行太多修改。。。