我正在尝试使用我从API获得的python读取JSON文件中的特定标记,如果它们已修复,我会没有问题,但似乎有时元素跳转我无法做到追求"序列"数字,但必须使用名称来定位它。名称应保持一致。
以下是我目前看到的两种类型,但我确信可能会有更多变化,所以不要依赖
heroID =数据[count] ['播放器'] [0] ['数据'] [8] ['数字']
提取值,我更愿意,寻找" HeroID"的位置。并将其读入变量。
更长的一次
[
{'id': 'HeroBattleTag', 'string': 'TFYoDa#1456'},
{'id': 'GameAccount', 'number': 10519139},
{'id': 'HeroClass', 'string': 'monk'},
{'id': 'HeroGender', 'string': 'f'},
{'id': 'HeroLevel', 'number': 70},
{'id': 'ParagonLevel', 'number': 1212},
{'id': 'HeroClanTag', 'string': 'Sc'},
{'id': 'ClanName', 'string': 'Super CasuaI'},
{'id': 'HeroId', 'number': 95443875}
]
较短的
[
{'id': 'HeroBattleTag', 'string': 'Michael#1920'},
{'id': 'GameAccount', 'number': 96532923},
{'id': 'HeroClass', 'string': 'monk'},
{'id': 'HeroGender', 'string': 'f'},
{'id': 'HeroLevel', 'number': 70},
{'id': 'ParagonLevel', 'number': 1062},
{'id': 'HeroId', 'number': 95441675}
]
答案 0 :(得分:0)
我认为我的问题从一开始就存在缺陷,但我能够通过在子json记录上构建迭代来编写代码,同时已经迭代了父代。
count = 0
for i in data:
character = []
rank = data[count]['order'] #ladderRank
accountId = data[count]['player'][0]['accountId'] #accountID
c = 0
for k in data[count]['player'][0]['data']:
if k['id'] == 'HeroId':
heroID = k['number']
pprint.pprint(heroID)
break
else:
c = c + 1
if c > len(data[0]['player'][0]['data']):
break