我正在尝试从表中的某些JSON获取值。这是我的查询:
BadData = len(df[(df.A1.str.contains('A|T|C|G')==False) & (df.A1.str.contains('0|1|2|3')==TRUE)])
尝试获取“人的ID”的值。这是JSON_Data列中存储的JSON(的一部分):
=if(ArrayFormula(isnumber(K23:M23)),AVERAGEIF(K23:M23,"<>0"),"")
我尝试使用两个单引号,但这仍然会出现错误:
JSON路径格式不正确。意外字符'''在位置8找到。“
使用反斜杠转义单引号也不起作用。
答案 0 :(得分:4)
这可能是一个很好的课程,不要制作垃圾JSON(并在将其插入数据库之前对其进行验证),因为according to the standard在实体名称中单引号不是可接受的字符。 :-)
您可以尝试这种类型的替换,但是性能将非常低落,它将替换Person's_ID
的所有实例,而不仅仅是替换为对象:< / p>
SELECT JSON_VALUE(REPLACE(JSON_Data,'Person''s_ID','Person_s_ID'), '$.Person_s_ID')
FROM dbo.Table;
工作示例:
DECLARE @d varchar(255) = '{"Person''s_ID": "Test"}';
SELECT JSON_VALUE(REPLACE(@d,'Person''s','Person_s'), '$.Person_s_ID');
结果:
Test