Python json添加多个键并迭代

Python json添加多个键并迭代,python,json,pandas,Python,Json,Pandas,我希望将数据帧转换为json,这是我目前拥有的代码: my_frame = pd.DataFrame( {'Age':[30, 31], 'Eye':['blue', 'brown'], 'Gender': ['male', 'female']}) my_frame = my_frame.to_json(orient='records') my_frame 结果: '[{"Age":30,"Eye":"blue","Gender":"male"},{"Age":

我希望将数据帧转换为json,这是我目前拥有的代码:

my_frame = pd.DataFrame(
    {'Age':[30, 31], 
     'Eye':['blue', 'brown'], 
     'Gender': ['male', 'female']})
my_frame = my_frame.to_json(orient='records')
my_frame
结果:

'[{"Age":30,"Eye":"blue","Gender":"male"},{"Age":31,"Eye":"brown","Gender":"female"}]'
{'id': 101,
 'info': '[{"Age":30,"Eye":"blue","Gender":"male"},
{"Age":31,"Eye":"brown","Gender":"female"}]',
 'loc': 'NY'}
我想向json对象添加键,并在从dataframe转换的整个数据上添加键信息

add_keys = {'id': 101,
    'loc': 'NY',
}
add_keys['info'] = my_frame
add_keys
结果:

'[{"Age":30,"Eye":"blue","Gender":"male"},{"Age":31,"Eye":"brown","Gender":"female"}]'
{'id': 101,
 'info': '[{"Age":30,"Eye":"blue","Gender":"male"},
{"Age":31,"Eye":"brown","Gender":"female"}]',
 'loc': 'NY'}
我想打印info中的两条记录,但是当我运行这个迭代代码时,它会输出字符串的每个字符,而不是整个记录。我相信这可能是我如何添加密钥的问题

非常感谢您的帮助

当您使用to_json时,pandas正在生成一个包含数据帧的json表示的字符串

如果要保留记录的结构以便对其进行操作,请使用

my_frame = my_frame.to_dict(orient='records')
然后,在添加键之后,如果要序列化数据,可以执行以下操作

json.dumps(add_keys)
当您使用to_json时,pandas将生成一个包含数据帧的json表示的字符串

如果要保留记录的结构以便对其进行操作,请使用

my_frame = my_frame.to_dict(orient='records')
然后,在添加键之后,如果要序列化数据,可以执行以下操作

json.dumps(add_keys)
最好在这里使用内置功能。所以,这就是您需要的:将_keys['info']=my_frame.T.添加到_dict.values

以下是全部代码:

最好在这里使用内置功能。所以,这就是您需要的:将_keys['info']=my_frame.T.添加到_dict.values

以下是全部代码:


您应该将原始数据帧放入add_keys['info'],而不是JSON表示。这是因为您的列表被视为字符串。转换它,它将被修复。我的框架是一个字符串,你需要转换它,类似这样:add_keys['info']=json.loadsmy_框架查看答案。你应该将原始数据框架放入add_keys['info'],而不是json表示。这是因为你的列表被视为字符串。转换它,它将被修复。我的框架是一个字符串,你需要转换它,类似这样:add_keys['info']=json.loadsmy_框架看看答案。