-3
私は、Pythonを使用してCSVファイルで始まるJSONファイルを作成しようとしています。CSVからPythonを使用したJSON
このようなCSVファイルの外観:
a,b,tableau.c,tableau2.d,tableau2.e,tableau2.f,tableau2.g,tableau.h
11725,11741,false,N/A,true,23,N/A,false
これまでのところ、私はこのように見えるようにJSONファイルにcsvファイルを変換し、それを配置する管理しています:
[
{
"a": "11725",
"b": "11741",
"tableau.c": "false",
"tableau.h": "false",
"tableau2.d": "N/A",
"tableau2.e": "true",
"tableau2.f": "23",
"tableau2.g": "N/A"
}
]
これを使用しますコード:
import csv
import json
file = "myFile.csv"
json_file = "myFile.json"
csv_rows = []
with open(file) as csvfile:
reader = csv.DictReader(csvfile)
title = reader.fieldnames
for row in reader:
csv_rows.extend([{title[i]:row[title[i]] for i in range(len(title))}])
with open(json_file, "w") as f:
f.write(json.dumps(csv_rows, sort_keys=True, indent=4, separators=(',', ': ')))
しかし、私の願いはこの1つのように見えるJSONファイルを取得するでしょう:
[
{
"a": "11725",
"b": "11741",
"tableau": [
{
"value" :"false",
"name" : "c"
},
{
"value" :"false",
"name" : "h"
},
]
"tableau2": [
{
"value" :"N/A",
"name" : "d"
},
{
"value" :"true",
"name" : "e"
},
{
"value" :"23",
"name" : "f"
},
{
"value" :"N/A",
"name" : "g"
},
]
}
]
私はこれを行う方法についての答えを探していて、これまで何も見つけていませんでした。
どうすればよいですか?
はこの作品事前
は、CSVファイルには、まさにこのように見えるんやファイルの各行で複数の行/要素が後にあるでしょうか? 'tableau'は' value 'の要素だけで構成されています: '' false''と 'tableau2'はすべて他の要素ですか? –
* Aside *:あなたの 'for row in reader'ループは冗長です。試してみてください: 'csv_rows = list(reader)' –
こんにちは、あなたの助けに感謝しますが、Alex Hallが質問に答えました。 –