2016-07-07 119 views
0

我的json文件看起来喜欢这个,我试图从它访问数据。列表索引必须是整数,而不是字典

{ 
"stats": [ 
    { 
     "id": 7, 
     "name": "WarL0cK", 
     "position": "toplane", 
     "playerSlug": "warl0ck", 
     "team": "BKT", 
     "gamesPlayed": 6, 
     "kda": 1.5, 
     "kills": 12, 
     "deaths": 20, 
     "assists": 18, 
     "killParticipation": 0.6666666666666666, 
     "csPerMin": 5.917136743824159, 
     "cs": 1014, 
     "minutesPlayed": 171, 
     "teamSlug": "bangkok-titans" 
    }, 

我的脚本在下面提到。当我运行它,它给人的错误:列表索引必须是整数,而不是字典

import csv 
import json 

json_file='PlayerStats.json' 
with open(json_file, 'r') as json_data: 
x = json.load(json_data) 

f = csv.writer(open("playerstats.csv", "w")) 

f.writerow(["stats", "id", "name", "position","playerSlug", "team",  "gamesPlayed", "kda", "kills", "deaths", "assists", "killParticipation", "csPerMin", "cs", "minutesPlayed", "teamSlug"]) 

stats=x["stats"] 
for key in x["stats"]: 
    f.writerow([ 
      x["stats"][key]["id"], 
      x["stats"][key]["name"], 
      x["stats"][key]["position"], 
      x["stats"][key]["playerSlug"], 
      x["stats"][key]["team"], 
      x["stats"][key]["gamesPlayed"], 
      x["stats"][key]["kda"], 
      x["stats"][key]["kills"], 
      x["stats"][key]["deaths"], 
      x["stats"][key]["assists"], 
      x["stats"][key]["killParticipation"], 
      x["stats"][key]["csPerMin"], 
      x["stats"][key]["cs"], 
      x["stats"][key]["minutesPlayed"], 
      x["stats"][key]["teamSlug"]])  

我认为这是在分析从词典列表中的一些问题。请帮忙。

+0

但还是它不工作 –

+0

您可以编辑您的问题告诉我们这行给出了错误,并添加一个标签为您正在使用的计算机语言? –

+1

(x [“stats”] [key] [“id”]):这一行出现错误。我使用的语言是python –

回答

0

这里统计包含JSON对象/类型的字典列表,所以当你遍历每个统计的“钥匙”是一个字典不是索引。只需使用:

key["id"] 
0

x [“stats”]是一个列表。不是字典。

所以,请更改x["stats"][key]["id"]x["stats"][0][key]["id"]

for key in x["stats"]: 
    f.writerow([ 
      x["stats"][0][key]["id"], 
      .... 
相关问题