0

データのソースは、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
4

1 に答える 1