2017-04-24 5 views
1

私はcsvからjsonファイルを作成する短いスクリプトを持っています。 スクリプトは小さなcsvではうまくいくようですが、csv(数百行、約12個のプロパティ)を持つ大きなcsvを使用すると、最後に作成されたjsonは閉じ括弧を使わずにjsonの途中で止まるようです。csv to jsonスクリプトの結果が不正なjson

下のスクリプト:

import sys, getopt 
import csv 
import json 
CSV_monthly = 'my\path.csv' 
JSON_monthly = 'another\path.json' 

csv_file = csv.DictReader(open(CSV_monthly, 'r')) 
f = file(JSON_monthly, 'w') 
for row in csv_file: 
    f.write(str(row)+",\n") 
+1

JSONにcsvライブラリを記述しないでください。代わりにjsonライブラリを使用してください。 –

答えて

2

ループをjson.dump(list(csv_file), f)に置き換えてください。

JSONを手動でエンコードしないでください。

str(row)はJSONと同じではありません。 JSONは常に二重引用符を使用します。 Pythonは無効なJSONである一重引用符を使用しようとします。

withステートメントを使用してファイルを処理します。

openを使用してファイルを開きます.fileではありません。

+1

すべての変更を示す完全なコードスニペットを回答に追加することをお勧めします。 – martineau

+0

私のスクリプトは別のQへの答えから来ました:http://stackoverflow.com/questions/43008753/csv-to-json-with-python-json-in-rows上記のスクリプトは小さなものでうまくいくようですcsv。 – JasonBK

+0

私はまた、上記の投稿がいくつかの提案として多くの回答であるとは思わない – JasonBK