我是处理json文件的新手,希望能得到一些帮助。 这是我正在处理的json文件的一部分(因为这对我来说太多了,无法全部发布)
[{"id":804,"name":{"english":"Naganadel","japanese":"\u30a2\u30fc\u30b4\u30e8\u30f3"},"type":["Poison","Dragon"],"base":{"HP":73,"Attack":73,"Defense":73,"Sp. Attack":127,"Sp. Defense":73,"Speed":121}},{"id":805,"name":{"english":"Stakataka","japanese":"\u30c4\u30f3\u30c7\u30c4\u30f3\u30c7"},"type":["Rock","Steel"],"base":{"HP":61,"Attack":131,"Defense":211,"Sp. Attack":53,"Sp. Defense":101,"Speed":13}},{"id":806,"name":{"english":"Blacephalon","japanese":"\u30ba\u30ac\u30c9\u30fc\u30f3"},"type":["Fire","Ghost"],"base":{"HP":53,"Attack":127,"Defense":53,"Sp. Attack":151,"Sp. Defense":79,"Speed":107}},{"id":807,"name":{"english":"Zeraora","japanese":"\u30bc\u30e9\u30aa\u30e9"},"type":["Electric"],"base":{"HP":88,"Attack":112,"Defense":75,"Sp. Attack":102,"Sp. Defense":80,"Speed":143}},{"id":808,"name":{"english":"Meltan","japanese":"\u30e1\u30eb\u30bf\u30f3"},"type":["Steel"],"base":{"HP":46,"Attack":65,"Defense":65,"Sp. Attack":55,"Sp. Defense":35,"Speed":34}},{"id":809,"name":{"english":"Melmetal","japanese":"\u30e1\u30eb\u30e1\u30bf\u30eb"},"type":["Steel"],"base":{"HP":135,"Attack":143,"Defense":143,"Sp. Attack":80,"Sp. Defense":65,"Speed":34}}]
我正在尝试获取每个口袋妖怪的id、名称、类型、基础、hp、攻击、防御和速度。我附上了我目前拥有的东西,其中包括我试图获取id并打印它
当我运行这个文件时,我得到的列表索引必须是整数或片,而不是str
import json
def main():
f = open('pokedex.json')
data = json.load(f)
f.close()
#print data
id_poke = data['_embedded']['id_poke']
id_info = []
for i in id_poke:
id_poke.append(i['id'])
if __name__ == '__main__':
main()
申报
As str()
看看你在问题中包含的json示例:它以
[
开头,这意味着它是一个列表,而不是一个字典。当您将此对象分配给变量data
,然后尝试使用(字符串)键_embedded
索引到此列表时,您会看到错误我不知道您希望它如何工作,因为您的json文件既没有
_embedded
也没有id_poke
作为键,但是为了让您开始,下面是如何打印每个对象的数字id和英文名称;你可以从那里拿走相关问题 更多 >
编程相关推荐