格式化标签时编码的错误



我正在尝试将标签(例如1000-1200)格式化为1,000-1,200€)

这正常工作:

labels = ["{:,}-{:,}".format(int(i[0].split("-")[0]), int(i[0].split("-")[1])) for i in labels]
['600-800', '1,000-1,200', '1,800-2,000', '2,600-2,800', '3,000-3,200']

但是当我尝试设置€符号时:

labels = ["u'{:,}-{:,}€'".format(int(i[0].split("-")[0]), int(i[0].split("-")[1])) for i in labels]

我得到了:

UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: unexpected end of data

想法如何纠正它?

您应该使用 u标志对字符串本身本身使用,而不是引用它作为字符串的一部分:

labels = [u'{:,}-{:,}€'.format(int(i[0].split("-")[0]), int(i[0].split("-")[1])) for i in labels]

最新更新