Python 拉;“玩家”&引用;统计数据“;从JSON
我有一个非常大的JSON文件,其中包含数千场模拟篮球比赛,以及每场比赛中每个球员的统计数据。我希望最终能够将这些数据提取到csv,但现在我想做的就是能够将统计数据作为字符串放入数组中 我已经编译了代码,但似乎没有完成我希望它做的事情,我定义要将统计数据写入的stats=[]仍然是空的 以下是我目前的计划:Python 拉;“玩家”&引用;统计数据“;从JSON,python,json,list,io,Python,Json,List,Io,我有一个非常大的JSON文件,其中包含数千场模拟篮球比赛,以及每场比赛中每个球员的统计数据。我希望最终能够将这些数据提取到csv,但现在我想做的就是能够将统计数据作为字符串放入数组中 我已经编译了代码,但似乎没有完成我希望它做的事情,我定义要将统计数据写入的stats=[]仍然是空的 以下是我目前的计划: import os #create path for file path = os.path.dirname('C:\\tmp\\Season3Playoffs.json') #create
import os
#create path for file
path = os.path.dirname('C:\\tmp\\Season3Playoffs.json')
#create list for stats for each player
stat = []
#open file
for filename in os.listdir(path):
with open(os.path.join(path, filename), encoding = "UTF-8") as input_file:
#go through each line of the file
for line in input_file:
#if a line has "pid" copy contents to the list stat until "psid" is encountered
if line in ('"pid"', '"psid"'):
stat.append(line.rstrip('\n'))
#print the stat entry
print(stat)
print("program complete")
下面是我希望保存在列表的每个元素中的JSON文件部分的示例:
"value": 64.8,
"valueNoPot": 72,
"valueFuzz": 64.8,
"valueNoPotFuzz": 72,
"valueWithContract": 64.8,
"pid": 1,
"imgURL": "",
"firstName": "Chris",
"lastName": "Bosh",
"diedYear": null,
"stats": [
{
"pid": 1,
"season": 2015,
"tid": 27,
"playoffs": false,
"gp": 0,
"gs": 0,
"min": 0,
"fg": 0,
"fga": 0,
"fgAtRim": 0,
"fgaAtRim": 0,
"fgLowPost": 0,
"fgaLowPost": 0,
"fgMidRange": 0,
"fgaMidRange": 0,
"tp": 0,
"tpa": 0,
"ft": 0,
"fta": 0,
"pm": 0,
"orb": 0,
"drb": 0,
"trb": 0,
"ast": 0,
"tov": 0,
"stl": 0,
"blk": 0,
"ba": 0,
"pf": 0,
"pts": 0,
"per": 0,
"ewa": 0,
"yearsWithTeam": 1,
"psid": 0
}
]
从该代码中,我希望“pid:x”和“psid:”之间的文本保存在stat[x]中
我不明白为什么它没有写入数组,非常感谢任何帮助 以下方法可能有效
import json
data = json.loads("""{
"value": 64.8,
"valueNoPot": 72,
"valueFuzz": 64.8,
"valueNoPotFuzz": 72,
"valueWithContract": 64.8,
"pid": 1,
"imgURL": "",
"firstName": "Chris",
"lastName": "Bosh",
"diedYear": null,
"stats": [
{
"pid": 1,
"season": 2015,
"tid": 27,
"playoffs": false,
"gp": 0,
"gs": 0,
"min": 0,
"fg": 0,
"fga": 0,
"fgAtRim": 0,
"fgaAtRim": 0,
"fgLowPost": 0,
"fgaLowPost": 0,
"fgMidRange": 0,
"fgaMidRange": 0,
"tp": 0,
"tpa": 0,
"ft": 0,
"fta": 0,
"pm": 0,
"orb": 0,
"drb": 0,
"trb": 0,
"ast": 0,
"tov": 0,
"stl": 0,
"blk": 0,
"ba": 0,
"pf": 0,
"pts": 0,
"per": 0,
"ewa": 0,
"yearsWithTeam": 1,
"psid": 0
}
]
}""")
print(data['stats'])
不使用有什么原因吗?我是一个初学者,不了解这个模块,希望提高基本的python技能。