Python:无法将JSON文件转换为CSV

Python:无法将JSON文件转换为CSV,python,json,csv,Python,Json,Csv,我有下面的代码,可以将JSON文件转换为CSV文件 import json import csv infractions = open("C:\\Users\\Alan\\Downloads\\open.json","r") infractions_parsed = json.loads(infractions) infractions_data = infractions_parsed['infractions'] # open a file for writing csv_data =

我有下面的代码,可以将JSON文件转换为CSV文件

import json
import csv

infractions = open("C:\\Users\\Alan\\Downloads\\open.json","r")
infractions_parsed = json.loads(infractions)
infractions_data = infractions_parsed['infractions']

# open a file for writing
csv_data = open('Data.csv', 'w')
# create the csv writer object
csvwriter = csv.writer(csv_data)
count = 0
for inf in infractions_data:
      if count == 0:
             header = inf.keys()
             csvwriter.writerow(header)
             count += 1
      csvwriter.writerow(inf.values())
employ_data.close()
然而,我得到了这个错误。为什么会这样

C:\Users\Alan\Desktop>python monkeytennis.py
Traceback (most recent call last):
  File "monkeytennis.py", line 5, in <module>
    infractions_parsed = json.loads(infractions)
  File "C:\Python27\lib\json\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

infractions
是一个文件对象,不能直接传递给
json.loads()
。要么先读一读:

infractions_parsed = json.loads(infractions.read())
或者使用
json.load
(不带's'),它需要缓冲区

infractions_parsed = json.load(infractions)

使用
csv.DictWriter
infractions_parsed = json.load(infractions)