如何使用 Python 更改 JSON 对象的值?
How do I change a value of a JSON object with Python?
我正在做一个项目,其中 Raspberry Pi 控制一些 12v 泵最终制作鸡尾酒。这是 Flask 中的 运行,在本地 Web 服务器(Pi)上。有多个带软管的酒瓶连接到泵,泵通过 Pi 上的 GPIO 引脚控制。这一切都很好。
我想添加一个功能,如果相关瓶子中剩余的酒量不足,我将无法制作鸡尾酒。我选择制作一个 .JSON 文件,因为它很轻且符合我的需要。我的 .JSON 文件中的对象如下所示:
"vodka": {
"id":"3",
"milliliters":1000,
"fullness":500,
"available": true
}
其中 'milliliters' 表示一整瓶的容量,'fullness' 表示瓶子还剩多少。
它 'reads' 值并将它们存储在 Python 变量中,例如:
x = open(data.json")
drinks = json.load(x)
vodkaBottleCapacity = (drinks['vodka']['milliliters'])
vodkaBottleLeft = (drinks['vodka']['fullness'])
我通过简单地使用来测试这是否有效:
print(vodkaBottleCapacity)
print(vodkaBottleLeft)
这给了我以下输出,确认它完全按照我想要的去做:
1000
500
现在,如果我让它为我调制使用 50ml (50) 伏特加的鸡尾酒,我想要一个 Python 脚本通过减去相应的量(在本例中为 50)来编辑“饱满度”值.
我被困在这一点上了。我一直在尝试像这样使用 json.dump 函数:
y = {'milliliters':1000}
x = open(/path/to/data.json")
json.dump(y, x)
x.close()
但这让我在终端中出现以下错误:
fp.write(chunk)
io.UnsupportedOperation: not writable
我做错了,我什至可能在错误的轨道上,所以我很感激你的帮助!
您是要更新丰满度吗?
with open(“data.json”) as x:
drinks = json.load(x)
vodkaBottleLeft = drinks['vodka']['fullness']
drinks['vodka']['fullness'] = vodkaBottleLeft - 50
with open(“data.json”, “w”) as x:
json.dump(drinks, x)
我正在做一个项目,其中 Raspberry Pi 控制一些 12v 泵最终制作鸡尾酒。这是 Flask 中的 运行,在本地 Web 服务器(Pi)上。有多个带软管的酒瓶连接到泵,泵通过 Pi 上的 GPIO 引脚控制。这一切都很好。
我想添加一个功能,如果相关瓶子中剩余的酒量不足,我将无法制作鸡尾酒。我选择制作一个 .JSON 文件,因为它很轻且符合我的需要。我的 .JSON 文件中的对象如下所示:
"vodka": {
"id":"3",
"milliliters":1000,
"fullness":500,
"available": true
}
其中 'milliliters' 表示一整瓶的容量,'fullness' 表示瓶子还剩多少。
它 'reads' 值并将它们存储在 Python 变量中,例如:
x = open(data.json")
drinks = json.load(x)
vodkaBottleCapacity = (drinks['vodka']['milliliters'])
vodkaBottleLeft = (drinks['vodka']['fullness'])
我通过简单地使用来测试这是否有效:
print(vodkaBottleCapacity)
print(vodkaBottleLeft)
这给了我以下输出,确认它完全按照我想要的去做:
1000
500
现在,如果我让它为我调制使用 50ml (50) 伏特加的鸡尾酒,我想要一个 Python 脚本通过减去相应的量(在本例中为 50)来编辑“饱满度”值.
我被困在这一点上了。我一直在尝试像这样使用 json.dump 函数:
y = {'milliliters':1000}
x = open(/path/to/data.json")
json.dump(y, x)
x.close()
但这让我在终端中出现以下错误:
fp.write(chunk)
io.UnsupportedOperation: not writable
我做错了,我什至可能在错误的轨道上,所以我很感激你的帮助!
您是要更新丰满度吗?
with open(“data.json”) as x:
drinks = json.load(x)
vodkaBottleLeft = drinks['vodka']['fullness']
drinks['vodka']['fullness'] = vodkaBottleLeft - 50
with open(“data.json”, “w”) as x:
json.dump(drinks, x)