我正在寻找一种通过Python从简单的CSV创建嵌套JSON的方法。我到目前为止,我能够从CSV创建一个Json,看起来它应该是。但我想将CSV中的一些属性放在一个JSON数组中,因为它们属于一个。
输入CSV:
.Form div
输出JSON:
Ansprechpartner, Telefon, Fax, eMail
Elin Persson,+46 (0)243 224360,+46 (0) 243 81322,info@borlangect.se
我已经存在的输出:
[
{
"Ansprechpartner": ["Elin Persson","+46 (0)243 224360","+46 (0) 243 81322","info@borlangect.se"]
}
]
Python代码:
[
{
"Fax": "+46 (0) 243 81322",
"eMail": "info@borlangect.se",
"Telefon": "+46 (0)243 224360",
"Ansprechpartner": "Elin Persson"
}
]
有人可以帮助我在JSOn文件中创建这个数组吗? 谢谢
答案 0 :(得分:0)
DictReader将信息映射到dict,你应该使用csv.reader()方法。
返回一个读取器对象,它将迭代给定的行 csvfile。 csvfile可以是支持迭代器的任何对象 protocol并在每次调用next()方法时返回一个字符串 - 文件对象和列表对象都是合适的。
然后只需将其转换为列表即可轻松操作。
import csv
import json
rows = []
with open('a.csv', 'rb') as f:
reader = csv.reader(f)
lines = list(reader)
for i in range(0, len(lines), 2):
rows.append({lines[i][0]: lines[i + 1]})
with open('test.json', 'w') as f:
json.dump(rows, f, indent=2, ensure_ascii=False)
你会得到:
[
{
"Ansprechpartner": [
"Elin Persson",
"+46 (0)243 224360",
"+46 (0) 243 81322",
"info@borlangect.se"
]
}
]
希望这有帮助。