首页 > 解决方案 > TypeError:'str'对象不支持项目分配,带有json文件的python

问题描述

以下是我的代码

import json
with open('johns.json', 'r') as q:
    l = q.read()
    data = json.loads(l)
    data['john'] = '{}'
    data['john']['user'] = 'hey'

以下是json文件

{}

每次我运行我的代码时,我都会收到错误

    data['john']['user'] = 'hey'
TypeError: 'str' object does not support item assignment

有没有办法解决这个问题并使 data['john']['user'] 相等嘿?

标签: pythonjsondictionary

解决方案


您的代码中有一些错误。首先,您可以使用json.load代替json.loads. 前者用于直接从 json 文件中获取数据。

然后,您将分配给data['john']一个字符串,而不是一个实际的字典。

import json
with open('johns.json', 'r') as q:
    data = json.load(q)
    data['john'] = {}
    data['john']['user'] = 'hey'

推荐阅读