Python解析含嵌套字典与列表的JSON并转换为DataFrame求助
解决方案
方法1:使用pandas内置json_normalize(推荐,代码最简洁)
json_normalize是pandas专门用来处理嵌套JSON/字典结构转DataFrame的工具,直接指定要展开的嵌套字段和要保留的上层字段即可:
import pandas as pd # 直接展开嵌套结构 df = pd.json_normalize( data=data['event']['markets'], record_path='odds', # 要展开的嵌套赔率列表 meta=['marketName'] # 要保留的上层市场名称字段 ) # 筛选你需要的3个字段,多余字段可直接丢弃 df = df[['marketName', 'name', 'odd']]
方法2:手动构造数据(适合新手理解逻辑)
如果你想自己控制数据处理流程,也可以先把所有数据整理成规整的字典列表,再转DataFrame:
import pandas as pd result = [] markets = data['event']['markets'] for m in markets: current_market = m['marketName'] # 遍历当前市场下的所有赔率 for odd_entry in m['odds']: result.append({ 'marketName': current_market, 'name': odd_entry['name'], 'odd': odd_entry['odd'] }) df = pd.DataFrame(result)
最终输出效果
得到的DataFrame格式如下:
| marketName | name | odd |
|---|---|---|
| Résultat Final | SAO PAULO | 1.85 |
| Résultat Final | X | 2.65 |
| Résultat Final | FORTALEZA CE | 3.50 |
| Résultat Final avec Handicap (0:1) | 1 | 2.60 |
| ... | ... | ... |
内容的提问来源于stack exchange,提问作者Hamza Berrada
相关产品推荐
相关产品推荐

