2016-07-07 117 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"], 
      .... 
相關問題