Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Mechanize:上传UTF-8文件时出现Unicode错误';ascii';编解码器_Python_Mechanize - Fatal编程技术网

Python Mechanize:上传UTF-8文件时出现Unicode错误';ascii';编解码器

Python Mechanize:上传UTF-8文件时出现Unicode错误';ascii';编解码器,python,mechanize,Python,Mechanize,mechanize框架非常适合自动化前两个web屏幕。问题是它需要在表单中上载带有的文件 以下是错误前的代码部分: 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

mechanize框架非常适合自动化前两个web屏幕。问题是它需要在表单中上载带有的文件

以下是错误前的代码部分:

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")
它会在运行时导致以下错误:

    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文件的上载吗?

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

...
xmlFile = open("MyFile.xml", "rt")
...

使用
codecs.open()
会使内容读取时不是UTF-8。@Ignacio我以前使用过code.open成功读取/写入UTF-8内容。你的建议是什么?:-)是的,您可以使用它来读取以UTF-8编码的文件,但它提供的不是UTF-8。就是这样!我不敢相信事情竟如此简单。谢谢