2017-09-20 10 views
1

単純なJsonをCSV形式に変換しようとしていますが、テーブル形式のようになっているので、簡単にデータベースに読み込むことができます。Pythonの汎用Jsonを表形式にパースする

いくつかのJsonを異なるメタデータで解析するための汎用コードを作成しようとしています。そのため、列名を指定する必要はなく、代わりにPythonが列名自体を生成することを期待します。それは、このような形式にするだけで、このJSON

[ 
{ 
    "name":"mike", 
    "sal":"1000", 
    "dept":"IT", 
}, 
{ 
    "name":"Joe", 
    "sal":"1200", 
    "dept":"IT", 
} 
] 

よう :

name sal dept 
Mike 1000 IT 
Joe 1200 IT 

私は以下のコードを使用しますが、それは

import json 
import csv 
infile = open(r'c:\test\test.json', 'r') 
outfile = open(r'c:\test\test.csv', 'w') 
writer = csv.writer(outfile) 
for row in json.loads(infile.read()): 
    writer.writerows(row) 

誰かが私にいくつかのサンプルを表示することができますが動作しません。これを行うコード?

おかげ

答えて

1

は、これはあなたを助ける:

writer = csv.DictWriter(f, fieldnames=['name', 'sal', 'dept']) 
writer.writeheader() 
for i in json.loads(a): 
    writer.writerow({'name': i['name'], 'sal': i['sal'], 'dept': i['dept']}) 
0

を私はあなたのサンプルコードを試してみました、このように、コロンの後にスペースを使用して.jsonをフォーマットするために必要であると考えられます。

[ 
{ 
    "name": "mike", 
    "sal": "1000", 
    "dept": "IT", 
}, 
{ 
"name": "Joe", 
"sal": "1200", 
"dept": "IT", 
} 
] 

次に、コードごとに1行ずつ読むことができます。他の すべてがここで見つけることができます:JSONを読む

How do I convert this list of dictionaries to a csv file? [Python]

0

は大丈夫です。 csvに書き込むには、csv.DictWriterを使用する必要があります。また、csvファイルにfieldnames、したがってheadersを提供することもできます。さらに助けのためhttps://docs.python.org/2/library/csv.htmlを参照してください

import json 
import csv 
infile = open(r'test.json', 'r') 
with open('test.csv', 'w') as csvfile: 
    fieldnames = ['name', 'sal', 'dept'] 
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 
    writer.writeheader() 
    for row in json.loads(infile.read()): 
     print(row) 
     writer.writerow(row) 

-

これは、変換を行います。

関連する問題