Jar*_*rad 7 python unicode clipboard python-3.x pandas
我想将数据帧数据传递到剪贴板,以便粘贴到Excel中.问题是,该字符'\xe9'导致编码问题,如下所示:
>>> df.to_clipboard()
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 65, in winSetClipboard
hCd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(text))+1)
TypeError: string argument without an encoding
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
df.to_clipboard()
File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1028, in to_clipboard
clipboard.to_clipboard(self, excel=excel, sep=sep, **kwargs)
File "C:\Python34\lib\site-packages\pandas\io\clipboard.py", line 98, in to_clipboard
clipboard_set(objstr)
File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 68, in winSetClipboard
hCd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(text, 'ascii'))+1)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 543793: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我解码了这个角色,这是一个口音 é
>>> '\xe9'.encode().decode()
'é'
Run Code Online (Sandbox Code Playgroud)
在阅读to_clipboard()的文档后,我注意到它说:
其他关键字被传递给to_csv.好吧,所以'其他关键字',我认为这意味着来自to_csv()的关键字参数- 特别是我想要使用encoding='cp1252'.
当我尝试这个时,to_clipboard()无法识别encoding关键字:
df.to_clipboard(encoding='cp1252')
File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1028, in to_clipboard
clipboard.to_clipboard(self, excel=excel, sep=sep, **kwargs)
File "C:\Python34\lib\site-packages\pandas\io\clipboard.py", line 95, in to_clipboard
objstr = obj.to_string(**kwargs)
TypeError: to_string() got an unexpected keyword argument 'encoding'
Run Code Online (Sandbox Code Playgroud)
有没有办法将所有数据传递给剪贴板(ascii和非ascii)?
df.to_clipboard(df.to_csv(encoding='cp1252'))
Run Code Online (Sandbox Code Playgroud)
只需使用指定的编码将其编码为 csv,然后将其扔到剪贴板上即可。
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |