【发布时间】: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修改数据。它似乎充其量只是一个范围,你不同意吗?