我需要加入这样的东西:
["Círculo", 23]
["Triángulo, 25, 19, "dos"]
我看过这篇文章 - > Joining a list that has Integer values with Python
但解决方案如:
', '.join(map(str, myList)) or ', '.join(str(x) for x in list_of_ints)
对我不起作用,因为特殊字符“í”使其失败:
UnicodeEncodeError:'ascii'编解码器无法编码字符... in 位置...:序数不在范围内(128)
那么解决它的pythonic方法是什么?我不想检查类型...... THX!
答案 0 :(得分:2)
检查编码我发现了一个适合我的解决方案:
u', '.join([unicode(x.decode('utf-8')) if type(x) == type(str()) else unicode(x) for x in a])
诀窍是使用decode('utf-8')
获取角色的有效8位表示。
希望这会有所帮助。
答案 1 :(得分:0)
如果您可以将列表中的字符串指定为unicode,例如:
[u"Círculo", 23]
[u"Triángulo", 25, 19, u"dos"]
那么这应该有效:
u', '.join(unicode(x) for x in list_of_ints)
假设您正在运行Python 2。
答案 2 :(得分:0)
import encodings
a=encodings.utf_16.decode(a[0])
encodings.utf_16.encode(a[0])
您是否尝试过使用编码模块?也许你会得到它与它一起工作。 但似乎没有使用utf_16编码...