如何在python中将json转换为csv

如何在python中将json转换为csv,python,json,csv,Python,Json,Csv,如何将以下json格式日志转换为python中的csv文件: Json输入(log.Json): Csv输出: time abc name value 14472 0 C 77 14472 0 N 88 1447 1 C 99 1447 1 N 0.12 看看 我没有亲自使用它,但我浏览了一次文档,似乎它为每个json对象创建了一个字典,并为每个数组创建了一个

如何将以下
json
格式日志转换为
python
中的
csv
文件:
Json输入(
log.Json
):

Csv输出:

time   abc    name   value  
14472   0      C      77  
14472   0      N      88  
1447    1      C     99    
1447    1      N      0.12  
看看

我没有亲自使用它,但我浏览了一次文档,似乎它为每个json对象创建了一个字典,并为每个数组创建了一个列表


一旦你有了这些,你就可以得到列标签的键,然后你就可以了。实际上写这个文件应该没什么大不了的。

假设“log.json”输入文件包含有效的json对象,这应该是可行的:

import csv
import json

with open('log.json', 'rb') as infile, open('output.csv', 'wb') as outfile:
    fieldnames = ['time', 'abc', 'name', 'value']
    writer = csv.DictWriter(outfile, fieldnames, delimiter='\t')
    writer.writeheader()
    for line in infile:
        row = json.loads(line)
        for a_def in row['Def']:
            writer.writerow({'time': row['time'],
                             'abc': row['abc'],
                             'name': a_def['name'],
                             'value': a_def['value']})

您确定输出正确吗?你的意思是第二行的
n88
和第三行的
c99
吗?你也必须首先使用有效的json。我建议你检查一下。你自己试过什么吗?如果是,请告诉我们你在哪里卡住了,或者你只是在等待别人给出答案?
import csv
import json

with open('log.json', 'rb') as infile, open('output.csv', 'wb') as outfile:
    fieldnames = ['time', 'abc', 'name', 'value']
    writer = csv.DictWriter(outfile, fieldnames, delimiter='\t')
    writer.writeheader()
    for line in infile:
        row = json.loads(line)
        for a_def in row['Def']:
            writer.writerow({'time': row['time'],
                             'abc': row['abc'],
                             'name': a_def['name'],
                             'value': a_def['value']})