gpt4 book ai didi

python - 以 Pandas Dataframe 作为值的字典的 JSON 格式

转载 作者:行者123 更新时间:2023-12-04 10:24:18 26 4
gpt4 key购买 nike

我需要从 Web 框架(例如 Flask)返回单个 Json 对象中的几个数据帧和一个字符串。我的代码看起来像这样:

import pandas as pd
data1 = [['Alex',10],['Bob',12],['Clarke',13]]
df1 = pd.DataFrame(data1,columns=['Name','Age'])
data2 = [['Cycle',5],['Run',1],['Hike',7]]
df2 = pd.DataFrame(data1,columns=['Sport','Duration'])

test_value={}
test_value["df1"] = df1.to_json(orient='records')
test_value["df2"] = df2.to_json(orient='records')
print(json.dumps(test_value))

这输出:
{"df1": "[{\"Name\":\"Alex\",\"Age\":10},{\"Name\":\"Bob\",\"Age\":12},{\"Name\":\"Clarke\",\"Age\":13}]", "df2": "[{\"Sport\":\"Alex\",\"Duration\":10},{\"Sport\":\"Bob\",\"Duration\":12},{\"Sport\":\"Clarke\",\"Duration\":13}]"}

所以在“df1”和“df2”的值的每个键前面都有一些转义字符。如果另一方面,我看 test_value ,我得到:
{'df1': '[{"Name":"Alex","Age":10},{"Name":"Bob","Age":12},{"Name":"Clarke","Age":13}]', 'df2': '[{"Sport":"Alex","Duration":10},{"Sport":"Bob","Duration":12},{"Sport":"Clarke","Duration":13}]'}

这不太对。我需要的是 'df1' 用双引号“df1”。没有在字符串中进行搜索和替换,有什么方法可以实现?

我什至尝试自己创建字符串,做这样的事情:
print('\{"test": "{0:.2f}"\}'.format(123))

但我收到此错误:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-266-1fa35152436c> in <module>
----> 1 print('\{"test": "{0:.2f}"\}'.format(123))

KeyError: '"test"'

我真的不明白:)。也就是说,必须有更好的方法然后为“df1”搜索/替换“df1”。

想法?

最佳答案

to_json 中有双重转换为 json并在 json.dumps职能。解决方案是通过 DataFrame.to_dict 将值转换为字典然后只有一次到 json来自 json.dumps :

test_value={}
test_value["df1"] = df1.to_dict(orient='records')
test_value["df2"] = df2.to_dict(orient='records')
print(json.dumps(test_value))
{"df1": [{"Name": "Alex", "Age": 10},
{"Name": "Bob", "Age": 12},
{"Name": "Clarke", "Age": 13}],
"df2": [{"Sport": "Alex", "Duration": 10},
{"Sport": "Bob", "Duration": 12},
{"Sport": "Clarke", "Duration": 13}]}

关于python - 以 Pandas Dataframe 作为值的字典的 JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60689753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com