我想回傳一個psql表,但我想以json格式回傳它。
假設桌子看起來像這樣......
| ID | 姓名 | 價值 |
|---|---|---|
| 1 | 喬 | 6 |
| 2 | 鮑勃 | 3 |
| 3 | 喬伊 | 2 |
但我想將它作為這樣的物件回傳......
{
"1": {
"name": "joe",
"value": 6
},
"2": {
"name": "bob",
"value": 3
},
"3": {
"name": "joey",
"value": 2
}
}
因此,如果我使用 Pandas 執行此操作并且該表作為資料框存在,我可以像這樣轉換它...
df.set_index('id').to_dict('index')
但我希望能夠在 psql 代碼中執行此操作。
我得到的最接近的是做這樣的事情
select
json_build_object (
id,
json_build_object (
'name', name,
'value', value
)
)
from my_table
但是不是將所有這些都聚合到一個物件中,結果是一堆在關鍵級別由行分隔的單獨物件......話雖如此,這有點相同的想法......
有任何想法嗎?
uj5u.com熱心網友回復:
你想得到jsonb_object_agg()這個:
select jsonb_object_agg(id, jsonb_build_object('name', name, 'value', value))
from my_table
但這對于任何真實世界大小的表格都不會奏效。單個值大約有 1GB 的限制。因此,這可能會因較大表(或列內的值)的記憶體不足錯誤而失敗
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/367703.html
標籤:json PostgreSQL的
上一篇:如何使用Jackson從JSON陣列項中決議原始值?
下一篇:HJSON只會決議整數或“空”值
