将复杂的嵌套JSON转换为CSV可以通过以下步骤实现:
下面是一个示例的Python代码,演示如何将复杂的嵌套JSON转换为CSV:
import json
import csv
def flatten_json(data, prefix=''):
flattened_data = {}
for key, value in data.items():
new_key = prefix + '_' + key if prefix else key
if isinstance(value, dict):
flattened_data.update(flatten_json(value, new_key))
else:
flattened_data[new_key] = value
return flattened_data
def convert_json_to_csv(json_data, csv_file):
# 解析JSON数据
data = json.loads(json_data)
# 扁平化嵌套结构
flattened_data = flatten_json(data)
# 创建CSV文件并写入数据
with open(csv_file, 'w', newline='') as file:
writer = csv.DictWriter(file, fieldnames=flattened_data.keys())
writer.writeheader()
writer.writerow(flattened_data)
# 示例JSON数据
json_data = '''
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York",
"country": "USA"
},
"skills": ["Python", "JavaScript", "SQL"]
}
'''
# 转换为CSV文件
convert_json_to_csv(json_data, 'output.csv')
以上代码将会生成一个名为output.csv
的CSV文件,包含以下内容:
name,age,address_street,address_city,address_country,skills_0,skills_1,skills_2
John,30,123 Main St,New York,USA,Python,JavaScript,SQL
这个CSV文件中的每一列对应JSON数据中的一个键,扁平化了嵌套的结构。
领取专属 10元无门槛券
手把手带您无忧上云