json 辞書に変換する必要がある Python のリストのリストがあります。リストは次のとおりです。
[
['[{"name":"david","level":"k","xaxis":[[]],"yaxis":[[]],', '"count":[[2011, 6], [2012, 0], [2013, 11]]},'],
['{"name":"marshall","level":"n","xaxis":[[]],"yaxis":[[]],',
'"count":[[2008, 130], [2009, 53], [2010, 10], [2011, 17], [2012, 0], [2013, 142]]}]']
]
私が必要とするのは:
{
[
{
"name": "david",
"level": "k",
"xaxis": [[]],
"yaxis": [[]],
"count":[[2011, 6], [2012, 0], [2013, 11]]
},
{
"name": "diana",
"level": "k",
"xaxis": [[]],
"yaxis": [[]],
"count":[[2011, 6], [2012, 0], [2013, 11]]
}
]
}
したがって、基本的には、サブリストを含む辞書であり、各サブリストには単一の辞書があります。私が持っているものでどのように達成できますか?
更新中:
では、わかりやすくするために、いくつかのステップに分けて説明します。データ構造を次のようにする必要があります (.json ファイルにダンプしています)。
[{
"name": "David",
"level": "s",
"xaxis": [
[]
],
"yaxis": [
[]
],
"count": [
[2008, 128],
[2009, 51],
[2010, 10],
[2011, 17],
[2012, 0],
[2013, 142]
]
}, {
"name": "Diana",
"level": "v",
"xaxis": [
[]
],
"yaxis": [
[]
],
"count": [
[2008, 11],
[2009, 0],
[2010, 1],
[2011, 2],
[2012, 0],
[2013, 6]
]
}]
したがって、私がこれを構築している方法は次のとおりです。
最初に 2 つのリストがあります -> 名前と計算:
names = ['David', 'Diana']
calculations = [[[2011, 6], [2012, 0], [2013, 11]], [[2008, 130], [2009, 53], [2010, 10], [2011, 17], [2012, 0], [2013, 142]]]
「calculations」は、リストのリストのリストです。
これら 2 つのリストから、最初に述べた構造を次のように作成しています。
import random
from compiler.ast import flatten
names_final = []
calculations_final = []
completed = []
for a in names:
names_final.append('{"name":"'.encode('utf-8')+a.encode('utf-8')+'","level":"'.encode('utf-8')+random.choice('abcdefghijklmnopqrstuvwxyz').encode('utf-8')+'","xaxis":[[]],"yaxis":[[]],'.encode('utf-8'))
for b in calculations:
calculations_final.append('"count":'.encode('utf-8')+str(b).encode('utf-8')+'},'.encode('utf-8'))
for i,j in map(None, names_final, calculations_final):
completed.append(flatten([i,j]))
最後に、完成したリストに対して、必要なものを取得するために次の変更を行っています。
completed[0][0]='['+completed[0][0]
completed[-1][-1]= completed[-1][-1][:-1]
completed[-1][-1]=completed[-1][-1]+']'
これにより、この質問の一番上に記載されている出力リストが得られます。ユーザーが定義したクエリに基づいて、ブラウザで json オブジェクトとして表示できるように、これを json オブジェクトに変換する必要があります。これが明確になることを願っています。あなたたちは何を提案しますか?