我有一個要轉換為 json 的欄位,但鍵是單引號而不是雙引號:
{'id': 12249, 'value': 'any string'}
{'id': 12232, 'value': 'other thing'}
我正在使用這個:
select replace(column,'''','"')::jsonb as columnj from table
上面的代碼可以正常作業,直到找到這樣的一行None:
{'id': None, 'value': None}
我該如何解決這種情況?
uj5u.com熱心網友回復:
如果您仍想保留None值行,您可以使用嵌套為NoneREPLACE值添加引號:
SELECT REPLACE(REPLACE(json_str,'''','"'),
'None',
'"None"') ::JSONB AS columnj
FROM tab
相反,如果您不想在 json 中包含那些具有None值的行,那么您可以將它們過濾掉:
SELECT REPLACE(json_str,'''','"')::JSONB AS columnj
FROM tab
WHERE json_str NOT LIKE '%None%';
在此處查看兩種解決方案的演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/486182.html
標籤:sql PostgreSQL
