python - 如何从 JSON 文件中删除某行:discord.py
问题描述
我有一个库存系统,但即使数字为 0,该项目仍向我显示如何从 JSON 文件中删除该项目我希望如果库存中的数字为 0,则该项目已从库存中删除所以它不再显示
async def remove_this(user,item_name,amount):
item_name = item_name.lower()
name_ = None
for item in tools:
name = item["name"].lower()
if name == item_name:
name_ = name
break
for item in Weapon:
name = item["name"].lower()
if name == item_name:
name_ = name
break
for item in drugs:
name = item["name"].lower()
if name == item_name:
name_ = name
break
for item in admins:
name = item["name"].lower()
if name == item_name:
name_ = name
break
for item in admins2:
name = item["name"].lower()
if name == item_name:
name_ = name
break
for item in csyon:
name = item["name"].lower()
if name == item_name:
name_ = name
break
for item in admins3:
name = item["name"].lower()
if name == item_name:
name_ = name
break
if name_ == None:
return [False,1]
users = await get_bank_data()
try:
index = 0
t = None
for thing in users[str(user.id)]["bag"]:
n = thing["item"]
if n == item_name:
old_amt = thing["amount"]
new_amt = old_amt - amount
if new_amt < 0:
return [False,2]
users[str(user.id)]["bag"][index]["amount"] = new_amt
t = 1
break
index+=1
if t == None:
obj = {"item":item_name , "amount" : amount}
users[str(user.id)]["bag"].append(obj)
except:
obj = {"item":item_name , "amount" : amount}
users[str(user.id)]["bag"] = [obj]
with open("Bank.json","w") as f:
json.dump(users,f)
return [True,"Worked"]
我的 JSON 文件:
{
"488415087011561493": {
"wallet": 0,
"bank": 5000,
"black": 4400,
"bag": [
{
"item": "opium",
"amount": 3
},
{
"item": "heroin",
"amount": 0
}
]
}
}
请不要担心这些物品 - 这是 GTA 5 RP 机器人
解决方案
这可以通过两种方式完成:
- 在显示玩家库存的函数中,检查amount == 0,如果是,则不显示。
...
if users[user_id]["bag"][index]['amount'] != 0:
#display item
...
- 我认为你想要的:如果 new_amt == 0 从列表中删除项目。
...
new_amt = old_amt - amount
if new_amt < 0:
return [False,2]
if new_amt != 0:
users[str(user.id)]["bag"][index]["amount"] = new_amt
else:
del(users[str(user.id)]["bag"][index])
t = 1
...
推荐阅读
- javascript - 如何在节点 js 中正确使用等待/异步与 for 循环
- nginx - 配置路径字段后,Kubernetes nginx 入口显示“403”
- amazon-web-services - AWS 网络负载均衡器访问日志修改
- hibernate - 从 persistence.xml 引用旧的休眠文件
- javascript - 检查字符串中的项目是否存在于数组 TS 中
- python - PySpark:设置执行器/核心和内存本地机器
- php - Laravel RedirectIfAuthenticated 不工作
- javascript - Angular中的文件上传捕获价值但不发布数据
- r - 我可以根据站点标准为我的树状图着色吗
- scala - Spark Mlib 中的 SelectKBest fclass_if 替代方案