How to read and write dictionaries to external files in python?
本问题已经有最佳答案,请猛点这里访问。
我有一本Python词典。我想修改字典,然后将字典保存到一个外部文件中,这样当我再次加载python程序时,它会从外部文件中获取字典数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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文件获取字典中的数据作为字典数据,而不是字符串数据?
1 2 3 | data = Data.getData("chatbotData.json") dataDict = data dataDict["age"] = 2 |
以下是我要对数据执行的操作,我得到以下错误:
TypeError: 'str' object does not support item assignment
让我们创建一个字典:
1 | >>> d = {'guitar':'Jerry', 'drums':'Mickey' } |
现在,让我们把它转储到一个文件:
1 2 | >>> import json >>> json.dump(d, open('1.json', 'w')) |
现在,让我们把它读回:
1 2 | >>> json.load(open('1.json', 'r')) {'guitar': 'Jerry', 'drums': 'Mickey'} |
更好地处理文件句柄
上面说明了
1 2 3 4 5 6 7 | >>> with open('1.json', 'w') as f: ... json.dump(d, f) ... >>> with open('1.json') as f: ... json.load(f) ... {'guitar': 'Jerry', 'drums': 'Mickey'} |