Python中如何更新数据字典?JSON字段提取更新报错求助
问题原因分析
你触发ValueError的核心原因是:你构造的report是字符串类型,但dict.update()方法要求传入的是字典对象,或者由键值对组成的可迭代序列(比如元组列表)。当你传入字符串时,Python会把它拆成单个字符的序列,每个字符长度为1,不符合update要求的“键值对(长度为2的元素)”格式,因此报错。
另外你原代码里的字符串格式化还有语法错误:括号位置不正确,正确的写法应该是report = "name:{}, id:{}".format(content['name'], content['id']),但即便修正了这个,字符串依然不能用来更新字典。
正确实现方式
方式1:直接创建目标字典
如果不需要中间变量,直接从JSON解析后的content字典提取字段创建my_dict即可:
# 假设content是你已解析完成的JSON字典 my_dict = { 'name': content['name'], 'id': content['id'] }
方式2:用字典类型的中间变量更新
如果必须通过中间变量来更新my_dict,需要把report定义为字典,而不是字符串:
# 构造字典类型的report report = { 'name': content['name'], 'id': content['id'] } # 初始化my_dict(如果尚未创建) my_dict = {} # 使用update方法更新字典 my_dict.update(report)
补充:update方法的合法参数示例
除了字典,你也可以传入键值对组成的元组列表:
my_dict.update([('name', content['name']), ('id', content['id'])])
内容的提问来源于stack exchange,提问作者user1471980
相关产品推荐
相关产品推荐

