我的fft Python中的错误问题,怎么解决

 我来答
匿名用户
2016-05-08
展开全部
Traceback(mostrecentcalllast):File"",line26,infoofor(event,elem)inxmlit:File"C:\Python32\lib\xml\etree\ElementTree.py",line1314,in__next__self._parser.feed(data)File"C:\Python32\lib\xml\etree\ElementTree.py",line1668,infeedself._parser.Parse(data,0)UnicodeEncodeError:'utf-8'codeccan'tencodecharacter'\ud800'inposition16383:surrogatesnotallowed由于出现错误之间for循环迭代,我可以包装一个唯一的地方try块以外的for循环,这是我无法继续到下一个XML是我的一个解决方案的优先事项如下:接收,而不必引发异常的未必然,有效的Unicode字符串作为文本。收到一个有效的Unicode字符串的字符无效更换或取出。跳过的无效字符CodeGo.net,并移动到下一个。我怎么能这些解决方案中,而不必和修改ElementTree编写自己?本文地址:CodeGo.net/9075227/-------------------------------------------------------------------------------------------------------------------------1.首先,所有的东西对可能这里无关紧要。尝试仅仅通过返回的文件f=open(filename,encoding='utf-8')如果是的话,解决的法是重写默认编码错误处理程序,如在文档解释说:错误是一个可选的字符串,用于指定编码和解码的错误是如何被handled,Äìthis不能以二进制方式。经过“strict”提出一个ValueError异常,如果有一个编码错误(没有默认有作用),或者通过“忽略”忽略错误。(请注意CodeGo.net,忽略编码错误会导致数据丢失。)'代替'的标记(如“?”)插入那里的数据。写作时,“xmlcharrefreplace”(替换为相应的XML字符引用)或“backslashreplace'(用反斜杠转义序列替换)可以在已注册codecs.register_error()其他错误处理也是有效的。所以,你可以这样做:f=open(filename,encoding='utf-8',errors='replace')这符合你的第二个priority,Äîthe无效字符将被替换'?'。有没有法来满足你的首要任务,有没有法来表示“不必然,有效的Unicode字符串”.a个Unicode字符串,顾名思义,对Unicode代码点的序列,这就是Python中如何对待str类型。如果你有无效的UTF-8,并希望把它转换成一个字符串,你需要指定应该如何变成string,Äîand那是什么,errors是。你可以,或者,以二进制方式打开该文件,息事宁人为UTF-8作为bytes对象,而不是试图把它变成一个Unicodestr反对,但你可以在与工作的APIbytes对象。(我相信lxml的ElementTree能真正做到这一点,但内置一不可,但不要说)。但即使你这样做,它不会让你很远.xML代码本身将试图解释无效的UTF-8,然后它需要知道你想要做什么样的错误,而这将是很难说明它的更远了。最后一点:因为发生错误的for循环迭代之间,唯一的地方,我可以换一个try块外循环,这是我无法继续到下一个XML那么,你实际上并不具有for环;你可以把它变成一个while环路明确next调用。所有你需要做这个,我知道你正在做wrong,Äîbut那就是你正在处理一个破碎库的标志,它是唯一可用的解决方法的一个标志。这一点:for(event,elem)inxmlit:#line26doStuffWith(event,elem)实际上等同于:whileTrue:try:event,elem=next(xmlit)exceptStopIteration:breakdoStuffWith(event,elem)而现在,有添加的地方try,Äîalthough你甚至不真正需要;你可以附加其他except在现有try。问题是,你有什么打算在这里做?谁也不能保证iterator就可以继续它抛出一个异常后。事实上,所有的最简单的方法来创建iterator将不能够这样做。你可以为自己测试是否这是真的在这种情况下。在极少数情况下,当你需要这个,而它实际上帮助,你可能想要把它包起来。像这样:defskip_exceptions(it):whileTrue:try:yieldnext(it)exceptStopIteration:raiseexceptExceptionase:logging.info('Skippingiterationbecauseofexception{}'.format(e))然后,你只是做:for(event,elem)inskip_exceptions(xmlit):doStuffWith(event,elem)本文标题:如何解决Unicode的错误xml.etree.ElementTree.iterparse()?本文地址:CodeGo.net/9075227/1.sqlite3的ORDERBY需要时间2.只有在Emacs的Python命令行为什么UnicodeEncodeError长大的吗?3.Memcached的不尊重的元组排序4.解析HTML使用QWebElement,如何提取图像?5.在__init__中声明的变量似乎是类实例之间共享?6.Python2.6中我有两个文件。SysDump.py和li7.为什么一个特定的导入看到其他导入?Python2.6中8.创建具有PyGTK的屏幕保护程序的使用XScreenSaver9.与目录工作|python10.从字符串转换为元组和QUOT;\\"在python
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式