从多个数据框python创建JSON

时间:2019-12-11 21:58:15

标签: python json pandas

使用to_json

,我的代码对1个数据帧完全正常

enter image description here

但是现在我希望在此结果中具有第二个数据帧。

所以我认为创建字典将是答案。

但是它会产生以下结果,这是不实际的。

请帮助

我希望在没有所有“ \”的情况下制作出更漂亮的东西

enter image description here

一个简单的好例子

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
df.to_json(orient='records')

一个简单的坏例子

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
{"result_1": df.to_json(orient='records')}

我也尝试过

jsonify({"result_1": df.to_json(orient='records')})

{"result_1": [df.to_json(orient='records')]}

1 个答案:

答案 0 :(得分:1)

嗨,我认为您的做法正确。 我的建议是也使用json.loads解码json并创建字典列表。

正如您之前所说,我们可以创建一个熊猫数据框,然后使用 df.to_json 进行自身转换。 然后使用 json.loads 对数据进行json格式化并创建字典以插入列表,例如:

data = {}
jsdf = df.to_json(orient = "records")
data["result"] = json.loads(jsdf)

将元素添加到字典中,如下所示:

  

{“ result1”:[{...}],“ result2”:[{...}]}

PS: 如果要为不同的数据帧生成随机值,则可以使用python的faker库。 例如:

from faker import Faker

faker = Faker()

for n in range(5):
    df.append(list(faker.profile().values()))
df = pd.DataFrame(df, columns=faker.profile().keys())