如何在字典列表中通过for循环将bytes转换为string?
解决字典列表中Bytes转String的赋值错误问题
问题原因
你遇到的"tuple无法进行对象赋值"错误,是因为dict.items()返回的是不可变的元组(tuple),元组的元素不能被修改,所以直接对y[1]赋值会触发错误。
解决方法
方法一:遍历字典的键
直接通过字典的键来访问并修改对应的值:
list1 = [ {'id': b'1', 'ip': b'1.1.1.1'}, {'id': b'2', 'ip': b'2.2.2.2'} ] for x in list1: for key in x: x[key] = x[key].decode('utf8') print(x)
方法二:解包键值对遍历
将items()返回的元组解包为key和value变量,再通过键更新字典:
list1 = [ {'id': b'1', 'ip': b'1.1.1.1'}, {'id': b'2', 'ip': b'2.2.2.2'} ] for x in list1: for key, value in x.items(): x[key] = value.decode('utf8') print(x)
运行结果
两种方法执行后都会输出:
{'id': '1', 'ip': '1.1.1.1'} {'id': '2', 'ip': '2.2.2.2'}
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

