如何使用jq或boto3将空格分隔姓名列表文件转换为指定JSON格式
空格分隔姓名列表转目标JSON的实现方案
方案1:使用jq命令行工具实现(轻量快速,仅需命令行操作)
直接执行以下命令即可完成转换:
jq -R -s '{"names": split(" ") | map(select(length > 0))}' names.txt > output.json
参数说明:
-R:按原始字符串模式读取输入,不自动解析为JSON-s:将所有输入内容合并为单个字符串处理split(" "):按空格拆分字符串为数组map(select(length > 0)):过滤掉空字符串,规避文件首尾空格、连续空格导致的无效空元素问题
转换示例:输入文件内容为name1 name2 name3时,输出的output.json内容为:
{ "names": [ "name1", "name2", "name3" ] }
方案2:Python + boto3实现(适配需要对接AWS服务的场景)
如果后续需要将转换后的JSON直接上传到S3等AWS资源,可在Python环境中结合boto3实现:
import json import boto3 # 读取原始姓名文件 with open("names.txt", "r", encoding="utf-8") as f: raw_content = f.read().strip() # 拆分姓名为数组,过滤空元素 name_arr = [item for item in raw_content.split(" ") if item] # 构造目标JSON结构 target_data = {"names": name_arr} # 可选:生成本地JSON文件 with open("output.json", "w", encoding="utf-8") as f: json.dump(target_data, f, ensure_ascii=False, indent=2) # 可选:使用boto3直接上传到S3存储桶 s3_client = boto3.client("s3") s3_client.put_object( Bucket="替换为你的S3桶名", Key="output.json", Body=json.dumps(target_data, ensure_ascii=False), ContentType="application/json" )
内容的提问来源于stack exchange,提问作者Wiked0ne
相关产品推荐
相关产品推荐

