获取UnicodeDecodeError,同时将numpy阵列保存到csv fi

2024-09-29 23:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

Traceback (most recent call last):
  File "Final_3.py", line 42, in <module>
    np.savetxt("table.csv", output_arr, fmt='%s' , delimiter=",")
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1381, in savetxt
    fh.write(v)
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1291, in write_normal
    self.fh.write(asunicode(v))
  File "/usr/local/lib/python2.7/dist-packages/numpy/compat/py3k.py", line 70, in asunicode
    return str(s).decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 22: ordinal not in range(128)

我也试过了 重新加载(系统)
sys.setdefaultencoding('utf8')在我的代码中,但它仍然没有帮助。在


Tags: inpynumpylibpackagesusrlocaldist
2条回答

我用Py3安装了numpy,所以不能直接测试代码。但是错误回溯看起来像是使用1.14版本,和我一样。所以这应该是相关的:

0xce问题字符生成一个数组:

In [553]: arr = np.array(['abc','def',chr(0xce)*3])
In [554]: arr
Out[554]: array(['abc', 'def', 'ÎÎÎ'], dtype='<U3')

尝试使用ascii编码保存时,会出现类似的消息:

^{pr2}$

更改编码工作:

In [556]: np.savetxt('test.txt',arr,fmt='%s',encoding='utf8')
In [557]: cat test.txt
abc
def
ÎÎÎ

当Python试图将Unicode转换为字节时,UnicodeDecodeError出现。Python2将在某些情况下隐式地执行此操作,而Python3不会。在

如果一直使用Unicode字符串,问题很可能会消失:

np.savetxt(u"table.csv", output_arr, fmt=u'%s' , delimiter=u",")

相关问题 更多 >

    热门问题