-1

とにかくmysqlクエリの結果を取得する方法はありますか

(id,result1,[result21,result22, result23])

3 番目の列がタイムスタンプで、同じ ID に対応する結果を取得しようとしています。

たとえば、次のような結果が得られます

(21,29383)
(21,23988)
(22,23455)
(22,34564)

私は結果が欲しい

(21,(29383,23988))
(21,(223455,34564))
4

1 に答える 1

2

私は MySQL に詳しくありませんが、結果が Python のタプルとして得られる場合は、Python 側でデータ構造を操作できます。1つの可能な方法は次のとおりです。

from collections import defaultdict

results = [
    (21,29383),
    (21,23988),
    (22,23455),
    (22,34564)
]

d = defaultdict(list)

for your_id, result in results:
    d[your_id].append(result)

results_as_tuples = tuple(
    sorted([
        (your_id, tuple(results)) for your_id, results in d.iteritems()
    ])
)

print results_as_tuples # --> ((21, (29383, 23988)), (22, (23455, 34564)))
于 2013-03-13T17:56:05.497 に答える