私は次のpythonの問題に苦しんでいます。私は既存のリストからjson出力を作成したいが、それは私が実現できない3レベルの構造である。配列の配列からjson出力を作成する
私は2レベル構造を作成する方法を知っている:
data = json.dumps(
[ {'book_id': i, 'exam': [{'count': k, 'wordids': w}]} \
for k,i,w, in \
zip(examcounts, bookid_list, wordid_list)],
indent=4)
有効な2レベルの構造を生成しますが、私は何とかこれにループのために別のものを実装する必要がある、私はそれを理解できませんでしたどうやって?
そう望んだ出力は次のようになります。
[
{
"book_id": "a",
"exams": [
{
"exam": [
{
"result":"B"
"wordids": [
25201L,
41851L,
10134L
]
}
],
"exam": [
{
"result":"A"
"wordids": [
43,
41,
10
]
}
]
}
]
},
{
"book_id": "b",
"exams": [
{
"exam": [
{
"result":"C"
"wordids": [
25,
10
]
}
],
"exam": [
{
"result":"C"
"wordids": [
25,
10
]
}
],
"exam": [
{
"result":"F"
"wordids": [
43,
41,
]
}
]
}
]
}
]
リスト例:
bookid_list: [u'a', u'b']
exmcounts: [22, 22, 20, 21, 21, 21, 21, 18]
results: ['B','A','C','C','F'...] with 8 length
wordid_list: [[25201L, 41851L, 10134L, 12174L, 6899L, 26078L, 12457L, 12176L, 26056L, 9451L, 25164L, 6618L, 43482L, 18681L, 12370L, 43272L, 15561L, 43483L, 30121L, 7715L, 21111L, 9461L], [13822L, 5172L, 7176L, 25754L, 12372L, 5509L, 16712L, 6187L, 8263L, 15408L, 20262L, 43487L, 5143L, 43488L, 6145L, 5697L, 7581L, 43489L, 22538L, 19417L, 43491L, 21498L], [19475L, 11631L, 12172L, 19495L, 30396L, 37274L, 43493L, 32393L, 5945L, 37521L, 6956L, 43494L, 36517L, 43495L, 13255L, 6558L, 12867L, 13382L, 6489L, 15447L]]
(wordidリストは8の長さを有し、各項目22の長さを有し、22、20 、21 ..) 事前に大きな感謝!
:例の下には、必要に応じて8に出て拡張することができ三つの要素でリストを含んでいますか? – schwobaseggl
@ Parpet私はリストを提供しました –
@ Parfait私はそれを追加しました –