【问题标题】:"+=" operator not working when modifying .json in variable (Python) [closed]在变量(Python)中修改.json时“+ =”运算符不起作用[关闭]
【发布时间】:2021-12-07 15:06:40
【问题描述】:

我是 Python 新手,我正在尝试将数据存储在 .json 中,然后通过 Python 访问和修改它。目前我遇到了一个问题,如果我尝试使用变量而不是直接修改它,我将无法修改数据。如果它不在变量中,或者我只是在读取信息,或者它不在函数中,它工作正常。

import json

with open('testprog.json', 'r+') as f:
    data = json.load(f)
    x = int(data['valueOne']) 
    def test():
        x += 1
#VSC tells me this variable is not defined. 
#If I swap the variable for “int(data[‘valueOne’])” it works.
        f.seek(0)
        json.dump(data, f, indent=4)
        f.truncate()

    test()
    print("New first value is: "+str(data['valueOne']))

.json:

{
    "valueOne": 10,
    "valueTwo": 5,
    "valueThree": 8
}

【问题讨论】:

  • x += 1 根本不会改变 data,你只是重新分配了局部变量 x
  • data['valueOne'] = x修改后。
  • 我不明白你为什么期望x += 1 修改数据。它似乎充其量只是一个范围,你不同意吗?

标签: python json


【解决方案1】:

我假设与键 valueOne 关联的值是一个字符串。因此你可以这样做:

data['valueOne'] = str(int(data['valueOne']) + 1)

【讨论】:

  • 很遗憾,当一个答案被否决时,没有义务解释原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 2022-06-21
  • 2014-11-16
  • 1970-01-01
相关资源
最近更新 更多