如何用python保存json文件中的所有输出

2024-09-30 10:35:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把我的输出保存在一个json文件中。我有一个包含100行和20个项目列的dataframe,有一个列名ID。在代码的某些部分,我定义了函数

def function1(dataframe, ID):
    df_sum = dataframe.sum()
    df_sum = df_sum .sort_values(ascending=False)
    df_sum = pd.DataFrame(df_sum , columns=['num_%s'%ID])
    result_sum = df_sum .to_json(orient='columns')

    return result_sum 

然后,我的代码

^{pr2}$

输出是(num在id的列表[0,1,…,99]中)

{"num_1":{"item1":4}}
{"num_2":{"item19":6,"item20":4,"item18":4}}
...
{"num_99":{"item18":5,"item21":4,"item20":1}}

现在,我添加json dump函数,方法如下

for num in list(dataframe.['ID'].values):
   ...some code lines, to drop and merge columns, which create the...
   ...dataframe df_aux
   values = function1(df_aux, ID)
   print(values) 

with open('data.json', 'w') as outfile:
   json.dump(values, outfile)

但是前面的代码,只返回最后一个结果。当我打开data.json文件时,它只出现"{"num_99":{"item18":5,"item21":4,"item20":1}}"

我需要将所有值保存在一个json文件中。我是python新手。如有任何提示,我们将不胜感激。谢谢!在


Tags: columns文件函数代码idjsondataframedf
1条回答
网友
1楼 · 发布于 2024-09-30 10:35:46

您只得到最后一行,因为每次for循环的迭代都会覆盖值。在

您可以声明一个名为values的数组并附加每个值。像这样:

values = []
for num in list(dataframe.['ID'].values):
   # some code lines, to drop and merge columns, which create the
   # dataframe df_aux
   value.append( function1(df_aux, ID) )

with open('data.json', 'w') as outfile:
   json.dump(values, outfile)

相关问题 更多 >

    热门问题