Python Pandas to_html无法打印utf-8字符

时间:2015-03-18 04:31:01

标签: python pandas

我正在尝试打印出一些UTF 8字符,但是当我发出以下代码时

csv = 'name\n"BOVÉR, LIÙSAIDH"'
`df = pandas.DataFrame.from_csv( StringIO(csv), index_col=False, encoding='utf-8')
print df.to_html()

我收到如下错误

  

UnicodeEncodeError:' ascii'编解码器不能对字符u' \ xc9'进行编码。位置260:序数不在范围内(128)

我尝试添加强制unicode标志,但这并没有改变任何东西。有什么提示吗?

1 个答案:

答案 0 :(得分:0)

这个问题不够精确,无法提供明确的答案。有关文件和字符串编码,熊猫版本以及特定错误来源的问题仍然存在。但是这里有足够的构造MCVE来评估python和python3解释器上的问题。

耦合要执行的操作:

  • from_csv()在最近的熊猫中已过时。尽早使用read_csv() 鉴于使用的熊猫版本,是可行的
  • PEP-0263源文件编码,以便MCVE可以工作
  • 使测试数据为unicode字符串
# -*- coding: utf-8 -*-
import pandas as pd
from io import StringIO
import sys

print(sys.version)
print(pd.__version__)

csv = u'name\n"BOVÉR, LIÙSAIDH"'
print(type(csv))
df = pd.read_csv(StringIO(csv), index_col=False, encoding='utf-8')
print(df.to_html())

python2.7运行:

python unicode_to_html.py 
2.7.16 (default, Mar 19 2019, 10:44:02) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)]
0.20.3
<type 'unicode'>
...snip...
      <td>BOVÉR, LIÙSAIDH</td>
...snip...

python3运行:

python3 unicode_to_html.py 
3.7.2 (default, Mar 19 2019, 10:33:22) 
[Clang 10.0.0 (clang-1000.11.45.5)]
0.24.2
<class 'str'>
...snip...
      <td>BOVÉR, LIÙSAIDH</td>
...snip...