我的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"
},
我的脚本如下所述。当我运行它时它会给出错误:list indices必须是整数,而不是dict
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)
x [" stats"]是一个列表。不是一个字典。
因此,请将x["stats"][key]["id"]
更改为x["stats"][0][key]["id"]
for key in x["stats"]:
f.writerow([
x["stats"][0][key]["id"],
....
答案 1 :(得分:0)
这里的stat包含一个Json对象/ dicts的列表,因此当你迭代stat每个" key"是一个字典而不是索引。只需使用:
key["id"]