Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python数据帧到JSon_Python_Json_Dataframe - Fatal编程技术网

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

我想将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()返回一个列表


提前谢谢。

您不应该手动将列表转换为字符串,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'))
。但是,由于我们不知道数据布局,可能另一个答案会更快地满足您的需求,而不会对您已有的代码进行太多修改。。。