Python json添加多个键并迭代

时间:2017-03-24 02:27:09

标签: 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":31,"Eye":"brown","Gender":"female"}]'

我想将密钥添加到json对象,并在从数据框转换的整个数据上添加密钥 info

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

结果:

{'id': 101,
 'info': '[{"Age":30,"Eye":"blue","Gender":"male"},
{"Age":31,"Eye":"brown","Gender":"female"}]',
 'loc': 'NY'}

我想在info中打印两个记录中的每一个,但是当我运行这个迭代代码时,它输出字符串的每个字符而不是整个记录。我相信这可能是我添加密钥的问题。

for item in add_keys['info']:
    print(item)

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:5)

最好在此处使用pandas内置功能。所以,这就是你需要的:select count(*) from House , Street WHERE Street.city_id IN (SELECT id FROM City WHERE country_id=177) and Street.id=House.street_id;

以下是整个代码

答案 1 :(得分:0)

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

如果您想保留记录的结构以便操作它们,请使用

my_frame = my_frame.to_dict(orient='records')

然后在添加密钥后,如果要序列化数据,可以执行

json.dumps(add_keys)