如何使用jq命令为JSON对象指定节点添加字段并保存?
嘿,这事儿不难!我给你用Python写个实操示例,一步步搞定修改JSON并保存文件的需求,完全匹配你要的结果:
实现步骤(Python版)
不管你的原始JSON是来自字符串还是本地文件,都可以用下面的方法处理:
示例代码
import json # 情况1:原始JSON是字符串(如果是文件,看下面的替代写法) original_json = '''{ "success": true, "module": { "data": { "item_i77f664a2": { "id": "i77f664a2", "tag": "item", "fields": { "cartItemId": 2012636322 }, "type": "biz" } } } }''' # 把JSON字符串转成Python字典,方便修改 data = json.loads(original_json) # 定位到fields对象,添加operation字段 data['module']['data']['item_i77f664a2']['fields']['operation'] = 'delete' # 把修改后的字典转回格式化的JSON字符串(indent=2让输出更美观) modified_json = json.dumps(data, indent=2) # 保存到本地文件,这里命名为modified_cart.json with open('modified_cart.json', 'w') as file: file.write(modified_json) print("搞定!修改后的JSON已经保存到modified_cart.json里了")
如果你是从文件读取原始JSON
把上面的original_json部分替换成这段代码就行:
# 情况2:从本地文件读取原始JSON with open('original_cart.json', 'r') as file: data = json.load(file)
代码解释
- 用
json.loads()/json.load()把JSON转成Python字典,这样就能像操作普通字典一样添加键值对; - 通过层级索引
data['module']['data']['item_i77f664a2']['fields']精准定位到你要修改的fields对象,直接添加"operation": "delete"; - 最后用
json.dumps()把字典转回格式化的JSON字符串,写入文件就完成啦。
运行完代码后,你打开modified_cart.json就能看到你期望的JSON结构了!
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

