我希望将数据帧转换为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)
任何帮助都非常感谢!
答案 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)