使用 orient=records 将 Python3/Pandas 数据帧写入 JSON

我正在将一个非常小的 Pandas 数据帧写入 JSON 文件。事实上,Dataframe 只有一行两列。


构建数据框:


import pandas as pd

df = pd.DataFrame.from_dict(dict({'date': '2020-10-05', 'ppm': 411.1}), orient='index').T

print(df)

印刷


         date    ppm

0  2020-10-05  411.1

所需的 json 输出如下:


{

  "date": "2020-10-05",

  "ppm": 411.1

}

但是当用 pandas 编写 json 时,我只能将其打印为包含一个元素的数组,如下所示:


[

  {

    "date":"2020-10-05",

    "ppm":411.1

  }

]

我目前已经破解了我的代码,将 Dataframe 转换为字典,然后使用该json模块写入文件。


import json

data = df.to_dict(orient='records')

data = data[0] # keep the only element

with open('data.json', 'w') as fp:

    json.dump(data, fp, indent=2)

如果只有一个字典项,是否有一种使用 pandas 的本地方法.to_json()来保留唯一的字典项?


我目前正在使用.to_json()这样的方法,它错误地打印了带有一个字典项的数组。


df.to_json('data.json', orient='index', indent = 2)

Python 3.8.6 熊猫 1.1.3


炎炎设计
浏览 89回答 1
1回答

胡子哥哥

如果您只想导出一行,请使用iloc:print (df.iloc[0].to_dict()) #{'date': '2020-10-05', 'ppm': 411.1}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python