<p>假设所有列表的长度都相同,可以将每个列表添加到<code>zip()</code>中,并将每个列表嵌入json字符串中。下面的示例包括三个元素的列表,可以根据需要扩展到8个元素:</p>
<pre><code>import json
bookid_list = [u'a', u'b', u'c']
examcounts = [22, 22, 20]
results = ['B','A','C']
wordid_list = [[25201, 41851, 10134, 12174, 6899, 26078, 12457, 12176, 26056,
9451, 25164, 6618, 43482, 18681, 12370, 43272, 15561, 43483,
30121, 7715, 21111, 9461],
[13822, 5172, 7176, 25754, 12372, 5509, 16712, 6187, 8263,
15408, 20262, 43487, 5143, 43488, 6145, 5697, 7581, 43489,
22538, 19417, 43491, 21498],
[19475, 11631, 12172, 19495, 30396, 37274, 43493, 32393, 5945,
37521, 6956, 43494, 36517, 43495, 13255, 6558, 12867, 13382, 6489, 15447]]
data = json.dumps(
[ {'book_id': b, 'exams': [{'exam': [{'results': r, 'wordids': w}]}]} \
for b,e,r,w, in \
zip(bookid_list, examcounts, results, wordid_list)],
indent=4)
print(data)
</code></pre>
<p><strong>输出</strong></p>
<pre><code>[
{
"book_id": "a",
"exams": [
{
"exam": [
{
"results": "B",
"wordids": [
25201,
41851,
10134,
12174,
6899,
26078,
12457,
12176,
26056,
9451,
25164,
6618,
43482,
18681,
12370,
43272,
15561,
43483,
30121,
7715,
21111,
9461
]
}
]
}
]
},
{
"book_id": "b",
"exams": [
{
"exam": [
{
"results": "A",
"wordids": [
13822,
5172,
7176,
25754,
12372,
5509,
16712,
6187,
8263,
15408,
20262,
43487,
5143,
43488,
6145,
5697,
7581,
43489,
22538,
19417,
43491,
21498
]
}
]
}
]
},
{
"book_id": "c",
"exams": [
{
"exam": [
{
"results": "C",
"wordids": [
19475,
11631,
12172,
19495,
30396,
37274,
43493,
32393,
5945,
37521,
6956,
43494,
36517,
43495,
13255,
6558,
12867,
13382,
6489,
15447
]
}
]
}
]
}
]
</code></pre>