首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python机械化:上传UTF-8文件时UnicodeEncodeError。‘'ascii’编解码器

Python机械化:上传UTF-8文件时UnicodeEncodeError。‘'ascii’编解码器
EN

Stack Overflow用户
提问于 2011-01-23 13:29:54
回答 1查看 878关注 0票数 1

mechanize框架非常适合自动化前几个web屏幕。问题是它需要在表单中上传文件的位置。

下面是错误之前的代码部分:

代码语言:javascript
复制
br.select_form(name="form.uploadXMLDataWizardForm")
xmlFile = codecs.open("MyFile.xml", "rt", "utf8")
br.form.add_file(file_object=xmlFile, content_type="text/xml", filename="MyFile.xml", name="dataFile")
br.submit(name="$action:next")

它会在运行时导致以下错误:

代码语言:javascript
复制
    br.submit(name="$action:next")
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_mechanize.py", line 541, in submit
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_mechanize.py", line 530, in click
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 2999, in click
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 3201, in _click
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 2350, in _click
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 3269, in _switch_click
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 3252, in _request_data
  File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 1341, in _write_mime_data
UnicodeEncodeError: 'ascii' codec can't encode characters in position 650-651: ordinal not in range(128)

你知道怎么让mechanize处理UTF-8文件的上传吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-25 11:11:44

Mechanize似乎希望文件数据是原始字节,而不是Unicode数据。尝试使用常用的open()函数打开该文件:

代码语言:javascript
复制
...
xmlFile = open("MyFile.xml", "rt")
...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4772482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档