如何在python中读取和写入外部文件的字典?

时间:2017-11-30 07:39:40

标签: python json python-3.x dictionary

我在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'对象不支持项目分配

1 个答案:

答案 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'}