Python 拉;“玩家”&引用;统计数据“;从JSON

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

我有一个非常大的JSON文件,其中包含数千场模拟篮球比赛,以及每场比赛中每个球员的统计数据。我希望最终能够将这些数据提取到csv,但现在我想做的就是能够将统计数据作为字符串放入数组中

我已经编译了代码,但似乎没有完成我希望它做的事情,我定义要将统计数据写入的stats=[]仍然是空的

以下是我目前的计划:

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技能。