データのソースは、2 つの結合を持つ Mysql クエリです。クエリは、次のような値のリストを返します。
title start additive
title1 5885 NULL
title2 8829 add1
title2 8829 add2
title3 3697 NULL
ご覧のとおり、複数の添加物がある場合、JOIN クエリはタイトル/開始の重複を作成します。タイトルは一意である必要があり、添加物はリストに追加する必要があります。
私の最終目標は、json データを次の形式で出力することです。
[
{
title: 'some-title',
start: '584487',
additives: [ 'add1': 58, 'add2': 98 ]
},
{
etc...
},
{
etc...
}
]
私が今行っていることは、リストを作成し、それに辞書オブジェクトを入力することです。ただし、重複します。リストに値を追加して、一意のタイトルと任意の数の添加物のリストを取得するにはどうすればよいですか?
Python についての私の限られた理解から、これを達成する簡単な方法はないようです。
PHP では、連想配列を使えば簡単です。
foreach ...
stages[stageTitle]['start'] = '8585';
stages[stageTitle]['additives'] = [];
//and to add to additives on title duplicate
stages[stageTitle]['additives'].push(new Array('additiveTitle' => '58'))
私のコード:
# sql query here...
data = self.cursor.fetchall()
stages = []
for stage in data:
title= stage[0]
start = stage[1]
additive = stage[3]
# I am stuck from here on.
# I cant use keys for list as they have to be numeric
# and I can't append to dict object
# tulpe is immutable so no good here either