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

Mat*_*vis 6 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()
Run Code Online (Sandbox Code Playgroud)

我收到如下错误

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

我尝试添加强制unicode标志,但没有改变任何东西.有小费吗?

Ric*_*ews 0

这个问题不够精确,无法提供明确的答案。关于文件和字符串编码、pandas 版本以及特定错误来自何处的问题仍然存在。但有足够的空间来构建 MCVE 来评估 python 和 python3 解释器上的问题。

\n\n

需要注意的几件事:

\n\n
    \n
  • from_csv()在最近的 pandas 中已过时。read_csv()鉴于所使用的 pandas 版本,请尽早使用
  • \n
  • PEP-0263源文件编码以便MCVE可以工作
  • \n
  • 将测试数据设为unicode字符串
  • \n
\n\n
# -*- coding: utf-8 -*-\nimport pandas as pd\nfrom io import StringIO\nimport sys\n\nprint(sys.version)\nprint(pd.__version__)\n\ncsv = u\'name\\n"BOV\xc3\x89R, LI\xc3\x99SAIDH"\'\nprint(type(csv))\ndf = pd.read_csv(StringIO(csv), index_col=False, encoding=\'utf-8\')\nprint(df.to_html())\n
Run Code Online (Sandbox Code Playgroud)\n\n

python2.7运行:

\n\n
python unicode_to_html.py \n2.7.16 (default, Mar 19 2019, 10:44:02) \n[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)]\n0.20.3\n<type \'unicode\'>\n...snip...\n      <td>BOV\xc3\x89R, LI\xc3\x99SAIDH</td>\n...snip...\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

python3运行:

\n\n
python3 unicode_to_html.py \n3.7.2 (default, Mar 19 2019, 10:33:22) \n[Clang 10.0.0 (clang-1000.11.45.5)]\n0.24.2\n<class \'str\'>\n...snip...\n      <td>BOV\xc3\x89R, LI\xc3\x99SAIDH</td>\n...snip...\n\n
Run Code Online (Sandbox Code Playgroud)\n