Skip to main content
 首页 » 编程设计

Python json 添加多个键并迭代

2025年05月04日22tintown

我正在寻找将数据框转换为 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 对象添加键,并在从数据帧转换的整个数据上添加键信息。

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 中的两条记录中的每一条,但是当我运行此迭代代码时,它会输出字符串的每个字符而不是整个记录。我认为这可能是我添加 key 的方式的问题。

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

非常感谢任何帮助!

请您参考如下方法:

最好用pandas内置功能在这里。所以,这就是您所需要的:add_keys['info'] = my_frame.T.to_dict().values()

这是完整代码:

>>> my_frame = pd.DataFrame( 
...     {'Age':[30, 31], 
...      'Eye':['blue', 'brown'], 
...      'Gender': ['male', 'female']}) 
>>> my_frame 
   Age    Eye  Gender 
0   30   blue    male 
1   31  brown  female 
>>> add_keys = {'id': 101, 
...     'loc': 'NY', 
... } 
>>> add_keys 
{'loc': 'NY', 'id': 101} 
>>> add_keys['info'] = my_frame.T.to_dict().values() 
>>> add_keys 
{'info': [{'Gender': 'male', 'Age': 30L, 'Eye': 'blue'}, {'Gender': 'female', 'Age': 31L, 'Eye': 'brown'}], 'loc': 'NY', 'id': 101} 
>>> for item in add_keys['info']: 
...     print(item) 
... 
{'Gender': 'male', 'Age': 30L, 'Eye': 'blue'} 
{'Gender': 'female', 'Age': 31L, 'Eye': 'brown'} 
>>>