如果你喜歡使用SQL這一點,有json_build_object
function:
SELECT
json_build_object(
'id', id,
'client', json_build_object(
'id', client_id,
'name', client_name))
FROM
tickets;
例:
#!/usr/bin/env python
import psycopg2
import json
conn = psycopg2.connect('')
cur = conn.cursor()
cur.execute("""
with tickets(id, client_id, client_name) as (values(1,2,'x'),(3,4,'y'))
SELECT
json_build_object(
'id', id,
'client', json_build_object(
'id', client_id,
'name', client_name))
FROM
tickets;
""")
for row in cur.fetchall():
print row, json.dumps(row[0])
輸出:
({u'client': {u'id': 2, u'name': u'x'}, u'id': 1},) {"client": {"id": 2, "name": "x"}, "id": 1}
({u'client': {u'id': 4, u'name': u'y'}, u'id': 3},) {"client": {"id": 4, "name": "y"}, "id": 3}
它的工作原理,但每次結果 「json_build_object」。看起來像: '{ 「json_build_object」:{id:...} },{ 「json_build_object」:{id:...} }'。我可以提高數據水平嗎? –
沒有''json_build_object「''鍵 –
@IldarAkhmetzyanov可能我們在代碼上有一些區別。新增示例。 – Abelisto