【发布时间】:2021-03-09 08:30:54
【问题描述】:
我使用 csv 和 json 库将 csv 文件转换为 json 文件。 csv文件如下(只有一列):
document
"[{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4}]"
"[{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4}]"
"[{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4, 'param5': 'value5', 'param6': {'param6-1': 'value6-1', 'param6-2': [value6-2-1, value6-2-2]}}]"
json文件如下(转换后):
[
{
"document": "[{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4}]"
},
{
"document": "[{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4}]"
},
{
"document": "[{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4, 'param5': 'value5', 'param6': {'param6-1': 'value6-1', 'param6-2': [value6-2-1, value6-2-2]}}]"
}
]
问题是我应该得到这个结果:
[
{
"document": {'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4},
{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4},
{'param1': 'value1', 'param2': 'value2', 'param3': value3, 'param4': value4, 'param5': 'value5', 'param6': {'param6-1': 'value6-1', 'param6-2': [value6-2-1, value6-2-2]}}
}
]
以下代码从 CSV 转换为 JSON:
def csv_to_json(csvFilePath, jsonFilePath):
jsonArray = []
# read csv file
with open(csvFilePath, encoding='utf-8') as csvf:
# load csv file data using csv library's dictionary reader
csvReader = csv.DictReader(csvf)
# convert each csv row into python dict
for row in csvReader:
# add this python dict to json array
jsonArray.append(row)
# convert python jsonArray to JSON String and write to file
with open(jsonFilePath, 'w', encoding='utf-8') as jsonf:
jsonString = json.dumps(jsonArray, indent=4)
jsonf.write(jsonString)
csvFilePath = r'DataCSV.csv'
jsonFilePath = r'DataJSon.json'
csv_to_json(csvFilePath, jsonFilePath)
问题是:转换是否正确完成?在那种情况下,如何询问复杂的值?比如param6-2?
感谢您的帮助
【问题讨论】: