使用Python/API将JSON导出到CSV

使用Python/API将JSON导出到CSV,python,json,csv,Python,Json,Csv,我有一个JSON文件,我想从中提取一些数据并导出到CSV。我有两个循环来获取我想要的数据,但似乎没有任何东西可以将其导出到CSV文件,请帮助,我是一个noob 这是我的密码: import csv import json from pandas.io.json import json_normalize json_data = open('FuelCheckerV1.txt') fueldata = json.load(json_data) with ope

我有一个JSON文件,我想从中提取一些数据并导出到CSV。我有两个循环来获取我想要的数据,但似乎没有任何东西可以将其导出到CSV文件,请帮助,我是一个noob

这是我的密码:

   import csv
   import json 
   from pandas.io.json import json_normalize
   json_data = open('FuelCheckerV1.txt')
   fueldata = json.load(json_data)
   with open('out.csv') as csvfile:
          csv = csv.writer(
              csvfile,
              delimiter=',',
              quotechar='"',
              quoting=csv.QUOTE_MINIMAL
          )
          csv.writerow(['code', 'name', 'address', 'stationcode', 'fueltype', 'price', 'lastupdated'])
            for i in fueldata['stations']:
                csv.writerow(i['code'], i['name'], i['address'])
            for x in fueldata['prices']:
                csv.writerow(x['stationcode'], x['fueltype'], x['price'], x['lastupdated'])
以下是实现我所需的for循环:

for i in fueldata['stations']:
    print (i['code'], i['name'], i['address'])

for x in fueldata['prices']:
    print (x['stationcode'], x['fueltype'], x['price'], x['lastupdated'])

假设上述for循环按预期工作,您可以尝试创建记录列表,使用pandas
from_records
方法创建数据帧,然后使用数据帧的
to_csv
方法。例如:

import pandas as pd
import json

fueldata = json.load(open('FuelCheckerV1.txt'))

list_of_records = [
    (i['code'],
     i['name'],
     i['address'],
     x['stationcode'],
     x['fueltype'],
     x['price'],
     x['lastupdated']
    )
    for i, x in zip(fueldata['stations'], fueldata['prices'])
]

df = pd.DataFrame.from_records(
    list_of_records,
    columns = ['code', 'name', 'address', 'stationcode', 'fueltype', 
               'price', 'lastupdated']
)

df.to_csv('filename.csv')

可能有更直接的方法从json创建数据帧,但这应该只在了解示例中的for循环时起作用。

假设上面的for循环按预期工作,您可以尝试创建记录列表,使用pandas
from_records
方法创建数据帧,然后使用数据帧的
to_csv
方法。例如:

import pandas as pd
import json

fueldata = json.load(open('FuelCheckerV1.txt'))

list_of_records = [
    (i['code'],
     i['name'],
     i['address'],
     x['stationcode'],
     x['fueltype'],
     x['price'],
     x['lastupdated']
    )
    for i, x in zip(fueldata['stations'], fueldata['prices'])
]

df = pd.DataFrame.from_records(
    list_of_records,
    columns = ['code', 'name', 'address', 'stationcode', 'fueltype', 
               'price', 'lastupdated']
)

df.to_csv('filename.csv')
可能有更直接的方法从json创建数据帧,但这应该只在了解示例中for循环的情况下起作用