You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq过滤Google Maps API JSON后格式错误,无法导入Tableau求助

解决jq处理JSON后格式错误无法导入Tableau的问题

问题场景

使用以下jq命令过滤Google Maps API获取的JSON文件,仅保留位于Bern的地点:

jq '.[] | select(.vicinity|contains("Bern"))' Bern.json > Bern_test.json

将生成的Bern_test.json导入Tableau时提示格式错误,在线JSON校验器报错:

Error: Parse error on line 38:... Wohlen bei Bern"} { "business_status"----------------------^Expecting 'EOF', '}', ',', ']', got '{'

错误片段如下:

"reference": "ChIJ-abNilA5jkcRAh6Jj7dLx_c",        
"scope": "GOOGLE",        
"types": [            
    "restaurant",            
    "food",            
    "point_of_interest",            
    "establishment"        
],        
"vicinity": "Aumattweg 22, Wohlen bei Bern"    
} {        
"business_status": "OPERATIONAL",        
"geometry": {            
    "location": {                
        "lat": 46.9684408,                
        "lng": 7.377661100000001

问题原因

原jq命令的输出是多个独立的JSON对象,彼此之间没有逗号分隔,也没有被数组[]包裹。而JSON语法要求顶级结构只能是单个对象或数组,多个对象直接拼接会导致格式不合法,这就是校验器和Tableau报错的核心原因。

解决方法

修改jq命令,将过滤后的结果包裹在数组中,确保输出合法的JSON结构:

jq '[.[] | select(.vicinity|contains("Bern"))]' Bern.json > Bern_test.json

命令说明

  • 外层的[]会把所有匹配的JSON对象收集成一个数组
  • 数组内的对象会自动用逗号分隔,完全符合JSON语法规范

执行这个命令后,生成的Bern_test.json会是一个标准的JSON数组,可正常导入Tableau并通过JSON校验。

内容的提问来源于stack exchange,提问作者milami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:31:09