python - python和Json - 编辑文件
问题描述
所以,我想从 python 更改我在 json 文件中的信息,但是我遇到了麻烦。我的 json 文件只是我想稍后编辑的信息:
[
{
"codigo": 10,
"Nom_articulo": "jabon",
"valor": 2500,
"cantidad": 6,
"subtotal": 0,
"descuento": 0
},
{
"codigo": 20,
"Nom_articulo": "Crema",
"valor": 9800,
"cantidad": 4,
"subtotal": 0,
"descuento": 0
},
{
"codigo": 30,
"Nom_articulo": "Cepillo",
"valor": 6000,
"cantidad": 7,
"subtotal": 0,
"descuento": 0
},
{
"codigo": 40,
"Nom_articulo": "Servilletas",
"valor": 3000,
"cantidad": 2,
"subtotal": 0,
"descuento": 0
},
{
"codigo": 50,
"Nom_articulo": "Desodorante",
"valor": 5000,
"cantidad": 6,
"subtotal": 0,
"descuento": 0
}
]
我想更改我所有字典中“小计”的值。
所以基本上我所做的是:
for i in range(len(archivo_r)):
precio= archivo_r[i]["valor"]
cantidad=archivo_r[i]["cantidad"]
subtotal=precio*cantidad
print(archivo_r[i]["codigo"], " - " ,archivo_r[i]["Nom_articulo"], " = ", str(subtotal))
#almacenar mis subtotales en el archivo json
print("sbtotal" ,archivo_r[i]["subtotal"])
archivo_r[i]["subtotal"]=subtotal
#archivo_r[i]["subtotal"].append(subtotal)
#print(archivo_r)
write_json(**XXXXX**)
这部分代码:
archivo_r[i]["subtotal"]=subtotal
完全符合我的需要,但是(这可能很愚蠢,但我在这里有点迷茫)我不知道如何使用它来重写我的 json 文件。我的意思是,我有编写它的功能。
def write_json(info, nombre_archivo="productos.json"):
with open(nombre_archivo, "w") as p:
json.dump(info, p)
我需要传递信息 write_json(**XXXXX**)
,但一直试图将我的信息存储archivo_r[i]["subtotal"]=subtotal
在一个变量中以传递它和其他东西,但没有任何效果。我知道我做错了,但不知道如何解决。
解决方案
处理完数据后,只需传递archivo_r
给您的write_json()
函数,就可以了。
顺便说一句,您可以像这样直接遍历 JSON 对象:
for section in archivo_r:
precio = section["valor"]
...
然后,您可以替换所有实例archivo_r[i]
with section
,或任何您想调用的变量。
推荐阅读
- keycloak - 无法通过 Admin REST API 将领域角色分配给新创建的 Keycloak 用户
- django - 从我的 django 模型上的每个传感器获取最后一个值
- java - 使用 api 响应图像格式的最佳选择?
- perl - 如何根据模式在 Perl 中分隔数组
- java - 基于括号拆分字符串
- sql-server - 使用 BCP 插入固定值
- iis - 大约 2 周前 IIS 没有启动
- python - 如何从 python 中的 csv 文件以对数比例绘制字符串作为 X 标签
- ruby-on-rails - 如何为 ActiveModel 中的方法使用延迟作业(Ruby on Rails)
- netlogo - Netlogo - 每次打开模型时图形窗口都会增长(补丁大小 < 1)