呜咕,东西没进到口袋里 -- 探讨Json

关於货物没进到口袋这档事

  • 回到刚才的函式,我们分为2部分,第一是如果存在,那amount的数字必须加上买的数量,第二是如果没有,那就添加
#cogs/money.py
# 使用try......except
try:
    # 使用count确认位置
    count = 0
    # 预设为0先认定它不存在,如存在则改为1
    exist = 0
    for cargo in users[str(user.id)]["bag"]:
        item = cargo["item"]
        if item == itemName:
            oldAmount = cargo["amount"]
            newAmount = oldAmount + amount
            users[str(user.id)]["bag"][count]["amount"] = newAmount
            exist = 1
            break
        count += 1
    if exist == 0:
        beginexist = {"item":itemName, "amount":amount}
        users[str(user.id)]["bag"].append(beginexist)
        
except:
    beginexist = {"item" : itemName, "amount" : amount}
    users[str(user.id)]["bag"] = [beginexist]
  • 最後,记得写回去json里面
with open("bank.json", "w") as f:
    json.dump(users, f)
    
await update_bank(user, cost*-1, "wallet")
return [True, "worked"]
  • 这样就能确认运作罗

关於Json档

  • bank(json)
{
    "682809473085079625": 
        {
            "wallet": 1054, 
            "bank": 0, 
            "bag": 
                [
                    {
                        "item": "watch", "amount": 10
                    }
                ]
        }
}
  • 这是到目前为止的格式
  • 其实追根究柢来说,可以使用资料库,但什麽是Json?

什麽是Json

  • JSON 是资料交换的格式。 是 Javascript Object Notation 的缩写。 先学 Javascript 再学 JSON 会有帮助,因为它是 Javascript 衍生出的一项功能。 JSON 是根据 JavaScript 的物件实字 (object literal) 发展的。 --Json精要读书纪录

结构

为甚麽不用资料库

  • 第一是,容易解析,又可以有结构,纯文字又方便传输,现在几乎所有後端甚至JavaScript都支援Json格式

  • 第二是,因为资料库连接较慢,我每呼叫一次函式就会发起一次请求,一点点还好,量多就......望向线上版资料库,个人没试过MySQL,或许会比较快...?(本人使用MongoDB)


<<:  Day22 - ArgoCD 建立应用程序

>>:  [DAY07] 开始用 Designer 在 Azure Machine Learning 做 AI

【前端效能优化】图片懒加载 Lazy Load

图片缓载入是为了避免第一次进到网页载入大量图片,造成网页载入速度太慢,因此非第一个画面看到的图片,可...

ASP.NET MVC 从入门到放弃(Day25)-MVC模型验证介绍

接下来讲讲 Model 验证规则部分... 在 模型类别上方需加入 using System.Com...

每日挑战,从Javascript面试题目了解一些你可能忽略的概念 - Day5

tags: ItIron2021 Javascript 作者碎碎念 当时在用这一系列题目跑模拟面试活...

Wrap-up : Alpine Linux on LiteX/VexRiscv

今天到了第三十天,也是该总结这将近一个月来的辛劳的时节了。 在我的Google Drive 资料夹中...

Day 0x16 UVa10235 Simply Emirp

Virtual Judge ZeroJudge 题意 输入一整数,输出是否为质数或 Emirp 需...