Python2中decode函数不生效是什么原因?如何正确打印实际字符串?
问题原因
Python2 中直接打印列表、字典这类容器对象时,会默认调用元素的__repr__方法输出序列化表示,中文会被转为十六进制转义字符,这是语言层的设计,和后续的编码解码操作无关。你原有代码里str(tag_list)已经生成了带转义的字符串,后续解码也无法还原原始中文。
解决方法
- 方案1:遍历列表单独打印每个元素
tag_list = [convert(tag) for tag in tag_list] print('tag_list: ') for tag in tag_list: print(tag)
- 方案2:使用json模块格式化输出(保留列表方括号格式)
import json tag_list = [convert(tag) for tag in tag_list] print('tag_list: ', json.dumps(tag_list, ensure_ascii=False))
- 方案3:手动拼接符合列表格式的Unicode字符串
tag_list = [convert(tag) for tag in tag_list] formatted_output = u"['" + u"', '".join(tag_list) + u"']" print('tag_list: ', formatted_output)
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

