我正在使用NYC crime dataset,我注意到凶杀案的offense
类型为MURDER & NON-NEGL. MANSLAUGHTE
。 (是的,这是没有“r”的“过失杀戮”。)但是,当我尝试使用SODA API进行过滤时,我会收到错误:
https://data.cityofnewyork.us/resource/hyij-8hr7.json?$where=offense='MURDER & NON-NEGL. MANSLAUGHTE'
{ “错误”:是的, “消息”:“无法识别的论点[NON-NEGL.MANSLAUGHTE']” }
在我看来,字符串中的&符号正在逃避。
请注意,我尝试使用like=‘MURDER’
命令来避免输入&符号,例如查询https://data.cityofnewyork.us/resource/hyij-8hr7.json?$where=offense like 'MURDER'
,但这会给我错误
{ “错误”:是的, “message”:“错误:函数#LIKE未在SoQL中定义:错误:函数#LIKE未在SoQL中定义。” }
这必须意味着NYC数据集正在使用SoQL。 v.2.0而不是2.1。
总而言之,我如何查询凶杀案?有没有办法让 (a)正确地逃避&符号,或者(b)搜索子串?
感谢您对这两项要求提供任何帮助。
答案 0 :(得分:2)
您更正了,hyij-8hr7
是该数据集的SODA 2.0端点。但是,2.1端点也存在:https://dev.socrata.com/foundry/data.cityofnewyork.us/e4qk-cpnv
使用2.1端点,您可以将&符号转义为URL编码的%26
:$where=offense='MURDER %26 NON-NEGL. MANSLAUGHTE'
。完整网址,完全转义:
GET https://data.cityofnewyork.us/resource/e4qk-cpnv.json?$where=offense%3D%27MURDER%20%26%20NON-NEGL.%20MANSLAUGHTE%27