【问题标题】:Converting JSON files to .csv将 JSON 文件转换为 .csv
【发布时间】:2015-08-19 16:51:54
【问题描述】:

我发现有人正在将一些数据下载到 JSON 文件中(我想!-我是新手!)。该文件包含近 600 名足球运动员的数据。

Here you can find the file

以前我下载过json文件,然后用这个代码:

import csv
import json

json_data = open("file.json")
data = json.load(json_data)

f = csv.writer(open("fix_hists.csv","wb+"))

arr = []

for i in data:
    fh = data[i]["fixture_history"]
    array = fh["all"]
    for j in array:

        try:
            j.insert(0,str(data[i]["first_name"]))
        except:
            j.insert(0,'error')

        try:
            j.insert(1,data[i]["web_name"])
        except:
            j.insert(1,'error')

        try:
            f.writerow(j)
        except:
            f.writerow(['error','error'])

json_data.close()

可悲的是,当我现在在命令提示符下执行此操作时,我收到以下错误:

Traceback(最近一次调用最后一次): 文件“fix_hist.py”,第 12 行(模块) fh = 数据[i]["fixture_history"] TypeError: 列表索引必须是整数,而不是 str

这个问题可以解决吗,或者有其他方法可以获取一些数据并将其转换为 .csv 吗?特别是“夹具历史”?然后是 'First'Name'、'type_name' 等。

提前感谢您的帮助:)

【问题讨论】:

标签: json csv


【解决方案1】:

试试这个工具:http://www.convertcsv.com/json-to-csv.htm

您需要配置一些东西,但应该很容易。

【讨论】:

  • 我试过了,但无法让它工作......我还尝试使用 ipython 生成 json 文件,然后使用一些 python 代码生成 .csv,但还没有弄清楚!
  • 如果你可以在 php 中编码,它就像 $data = json_decode(file_get_contents('json_url'));然后循环数据并使用 csv delimiter 打印出您需要的内容
  • 目前无法做到这一点,但我遵循教程。我已经更详细地修改了上面的问题