<p>要简化写入CSV文件时的循环,请将所有仅为数字的<code>dataX</code>项替换为该编号的4个副本的列表。这样你就可以用同样的方法索引它们。在</p>
<pre><code>import json
import csv
json = '''
{
"userName" : "Jhon",
"status" : "success",
"id" : 1234,
"myData" : {
"data1": [1,2,3,4],
"data2": [1,2,3,4],
"data3": [1,2,3,4],
"data4": 25,
"data5" : 12
},
"currentStatus" : true
}'''
data = json.loads(json)
for key, val in data['myData']:
if type(val) is not list:
data['myData'][key] = [val]*4 # convert scalar to list
with open("output.csv", "w") as f:
csvfile = csv.writer(f)
# write header row
csvfile.writerow(['userName', 'Status', 'Id'] + data['myData'].keys() + ['currentStatus'])
prefix = [data['userName'], data['status'], data['id']
suffix = [data['currentStatus']]
for i in range(4):
row = prefix[:]
for d in data['myData']:
row.append(d[i])
row += suffix
csvfile.writerow(row)
</code></pre>
<p>也许有一种更简单的方法可以将列表字典转换为二维列表。在</p>