新手求助:将JSON格式文本转为Linux脚本可读的键值对TXT
将JSON转换为键=值格式的文本文件
我有一个如下格式的JSON文本文件:
{"date":"13:57", "temp":"32.5", "tempTL":"23.8", "tempTH":"32.6", "intemp":"66.2", "dew":"27.3", "dewpointTL":"21.0", "dewpointTH":"28.3", "apptemp":"27.4", "apptempTL":"17.5", "apptempTH":"27.7", "wchill":"32.5", "wchillTL":"19.8", }
需要转换成每行键=值格式的TXT文件:
date=13:57 temp=32.5 tempTL=23.8 tempTH=32.6 intemp=66.2 dew=27.3 dewpointTL=21.0 dewpointTH=28.3 apptemp=27.4 apptempTL=17.5 apptempTH=27.7 wchill=32.5 wchillTL=19.8
生成的文件要供Linux脚本读取,我会通过Linux把文件下载到树莓派。作为新手,不确定该用Linux命令还是Python来完成转换。
方案一:Linux命令行快速处理
树莓派默认自带jq工具(如果没有,先执行sudo apt install jq安装),一行命令就能完成转换:
jq -r 'to_entries[] | "\(.key)=\(.value)"' input.json > output.txt
说明:
-r:让输出是不带引号的原始字符串to_entries[]:把JSON对象转换成键值对数组"\(.key)=\(.value)":把每个键值对拼接成键=值的格式input.json替换成你的源JSON文件名,output.txt是生成的目标文件
就算源JSON末尾有多余的逗号(比如示例里的情况),jq也能自动处理,不用手动修改文件。
方案二:Python脚本处理(适合自定义需求)
如果需要后续扩展逻辑,用Python更灵活,写个简单脚本就行:
import json # 读取并修复JSON文件(处理末尾多余逗号) with open('input.json', 'r') as f: raw_content = f.read().rstrip(',\n') + '}' data = json.loads(raw_content) # 写入键=值格式的文件 with open('output.txt', 'w') as f: for key, value in data.items(): f.write(f"{key}={value}\n")
使用步骤:
- 把上面的代码保存成
convert.py文件 - 把你的源JSON文件命名为
input.json,和脚本放在同一文件夹 - 执行命令:
python3 convert.py - 同目录下会生成
output.txt,就是你要的格式
内容的提问来源于stack exchange,提问作者BobW
相关产品推荐
相关产品推荐

