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

如何从JSON文本提取指定字段并生成带规则标注的目标输出

提取JSON文件指定字段并生成类CSV格式输出

使用jq工具(推荐,简单高效)

如果你的系统安装了jq(多数Linux/macOS可直接安装,Windows可通过Chocolatey等渠道安装),直接用以下命令处理你的JSON文件(假设文件名为data.txt):

# 处理带逗号分隔的JSON对象
sed 's/,$//' data.txt | jq -r '. | "\(.username) \(.votecount)\(if (.votecount | tonumber) < 25 then "D" else "" end)"'

命令说明:

  • sed 's/,$//':移除每个JSON对象末尾的多余逗号,确保jq能正确解析
  • jq -r:输出原始字符串(不带JSON格式的引号)
  • "\(.username) \(.votecount)\(...)":按要求拼接用户名、投票数字段,嵌入判断逻辑
  • (.votecount | tonumber):将字符串类型的投票数转为数字,用于数值比较
  • if ... then "D" else "" end:当投票数小于25时追加字母D,否则不添加后缀

使用Python脚本(跨平台通用)

如果没有jq,可编写简单Python脚本处理:

import json

# 读取文件内容并清理格式
with open('data.txt', 'r', encoding='utf-8') as f:
    raw_content = f.read()
# 移除JSON对象末尾的逗号,包裹为数组格式以符合JSON规范
clean_content = raw_content.replace(',\n}', '\n}')
json_data = json.loads(f'[{clean_content}]')

# 遍历每个对象生成目标格式输出
for item in json_data:
    username = item['username']
    votecount = int(item['votecount'])
    suffix = 'D' if votecount < 25 else ''
    print(f"{username} {votecount}{suffix}")

脚本说明:

  1. 读取文件后清理JSON对象末尾的逗号,将所有独立对象包裹为JSON数组,方便解析
  2. 逐个解析每个JSON对象,提取用户名和投票数字段
  3. 根据投票数判断是否添加后缀D,按要求格式输出每行内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:25:19