0
データベースのバックエンドからraw SQL
クエリを実行して情報を取得しようとしています。私は計算を行う必要があります(係数をフィールドに掛けて切り捨て)、それを演奏の方法でJSON
に変換する必要があります。それが私がここで(Django
)ORMを使用しないことを決めた理由です。私はpython
構文に使用されませんので、このような文を作成するためのエレガントな解決策があるかどうか、まだ私は疑問に思ってPython Django与えられたリストからRaw SQLクエリを作成する
[
{'column': 'column1', 'factor': 100, 'description': 'COL1', 'trunc': 2},
{'column': 'column2', 'factor': 100, 'description': 'COL2', 'trunc': 2},
[..]
]
:
with connection.cursor() as cursor:
cursor.execute(
'''
SELECT json_build_object(
'data', array_agg(r)
)
FROM (
SELECT
time,
trunc(column1 * 100, 2) as COL1,
trunc(column2 * 100, 2) as COL2,
[...]
FROM measurements
WHERE device_id=%s
ORDER BY time DESC
LIMIT 5
) r
''',
[device_id]
)
result = cursor.fetchall()
は、私は以下のリストから上記のステートメントを適応させる必要があります。私はちょうどdictsのリストをループし、クエリを追加することができますが、それは私には良い/右を感じていない知っている。任意の提案をいただければ幸いです。
私はこのような何かを考えています:
['trunc({} * {}, {}) as {}'.format(
d['column'], d['factor'], d['trunc'], d['description']) for d in l
]