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

使用Bash修复多文件中App Store爬虫输出的JSON格式问题

解决方法

方案1:改Node.js脚本直接输出标准JSON

最省事的办法是直接在Node.js里把结果转成标准JSON输出,省得后面再折腾格式修复:

var store = require('app-store-scraper');

store.reviews({
  id: 300238550,
  sort: store.sort.HELPFUL,
  page: 1
})
// 用JSON.stringify把评论数组转成标准JSON格式输出
.then(reviews => console.log(JSON.stringify(reviews)))
.catch(err => console.error(err));

这样输出的内容直接是标准JSON,pandas.read_json能直接读,不用额外处理。

方案2:用Bash脚本修复字符串格式

要是不想改Node.js代码,就用下面的Bash命令链处理输出,搞定字符串多行、缺引号、带特殊字符的问题:

node your-review-script.js | \
# 合并被\n+拆分的多行字符串
sed '/\\n+$/ { :merge; N; s/\\n+//g; /\\n+$/ b merge; }' | \
# 删掉字符串里的撇号和双引号
sed "s/'//g; s/\"//g" | \
# 给非数字的键值加双引号(前提是你已经把键名改成带引号的格式了)
sed -E 's/(".*"): ([^0-9][^,}]*)/\1: "\2"/'

各步骤说明:

  • 第一步sed:循环把所有以\n+结尾的行合并成一行,同时删掉\n+标记,解决字符串被拆分的问题。
  • 第二步sed:全局删掉字符串里的撇号和双引号,避免后面加引号时出现语法冲突。
  • 第三步sed:匹配已经带引号的键,给后面的非数字内容加双引号,确保符合JSON格式(像评分、ID这类数字值不用加引号)。

处理完的输出就能用pandas.read_json正常读取了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 19:31:25