我在python中有一本字典。我想修改该字典,然后将字典保存到外部文件中,这样当我再次加载python程序时,它会从外部文件中获取字典数据。
class Data:
"""
Data handling class to save
and receive json data, parent
of User for data purposes.
"""
def saveData(data, file):
with open(file, 'r+') as dataFile:
dataFile.write(json.dumps(data))
def getData(file):
with open(file, 'r+') as dataFile:
return json.loads(dataFile.readline())
def deleteContent(file):
file.seek(0)
file.truncate()
但是当我写入文件然后尝试读取它时,将其作为字符串读取,我无法使用读取数据来设置字典。如何从外部JSON文件中获取字典中的数据作为字典数据,而不是字符串数据?
data = Data.getData("chatbotData.json")
dataDict = data
dataDict["age"] = 2
以下是我想对数据做的事情,我收到了这个错误:
TypeError:'str'对象不支持项目分配
答案 0 :(得分:2)
让我们创建一个词典:
>>> d = {'guitar':'Jerry', 'drums':'Mickey' }
现在,让我们将其转储到一个文件中:
>>> import json
>>> json.dump(d, open('1.json', 'w'))
现在,让我们回读一下:
>>> json.load(open('1.json', 'r'))
{'guitar': 'Jerry', 'drums': 'Mickey'}
上面说明了json
模块,但关于关闭文件却很草率。更好:
>>> with open('1.json', 'w') as f:
... json.dump(d, f)
...
>>> with open('1.json') as f:
... json.load(f)
...
{'guitar': 'Jerry', 'drums': 'Mickey'}