我正在嘗試展平的 BigQuery 資料庫中有一個相當簡單的字串格式的 json 列。
| ID | 關系 |
|---|---|
| 1 | {'ownerObject': {'data': None}, 'investmentObject': {'data': {'type': 'assets', 'id': '40'}}, 'securityObject': {'data':無},'segmentObject':{'data':無},'dataItemObject':{'data':{'type':'dataItems','id':'13161'}},'scenarioObject':{'data ': {'type': 'scenarios', 'id': '13'}}} |
跑步:
SELECT
id,
JSON_EXTRACT_SCALAR(relationships, '$.investmentObject.data.type') as Invest_Type
FROM periodicData
給我:
| ID | 投資型別 |
|---|---|
| 1 | 空值 |
我希望列Invest_Type為 = assets。但無論我在這個 json 列上嘗試什么,我總是以null結束:
JSON_EXTRACT(relationships, '$.investmentObject.data.type') as Invest_Type=空JSON_EXTRACT(relationships, '$.dataItemObject.data.type') as Invest_Type=空JSON_EXTRACT(relationships, '$.dataItemObject') as Invest_Type=空JSON_EXTRACT(relationships, '$') as Invest_Type=空relationships as r=完整的 json(如預期的那樣)
在過去的一周里,我一直在對很多桌子進行類似的操作,沒有任何問題,但不知何故,這張桌子很頑固。我可能做錯了什么?
關系在模式中的
外觀
如何關系
在預覽中的外觀
任何幫助表示贊賞!
uj5u.com熱心網友回復:
您的查詢有效,但您的 json 格式不正確。
將單引號更改為雙引號并在“無”周圍添加引號。
粗略的版本:
with cleaned as (select id, replace(replace(relationships, "\'","\""),"None","\"None\"") as relationships from inputtable)
SELECT
id,
JSON_EXTRACT_SCALAR(relationships, '$.investmentObject.data.type') as Invest_Type
FROM cleaned;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431221.html
