python - django 反序列化尝试将输入编码为 ascii?

标签 python xml django unicode python-unicode

代码:

>>> from django.core import serializers
>>> objects = serializers.deserialize('xml', fixturestr)
>>> o = next(objects)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/marcintustin/oneclickrep/oneclickcosvirt/lib/python2.7/site-packages/django/core/serializers/xml_serializer.py", line 156, in next
    for event, node in self.event_stream:
  File "/usr/lib/python2.7/xml/dom/pulldom.py", line 232, in next
    rc = self.getEvent()
  File "/usr/lib/python2.7/xml/dom/pulldom.py", line 265, in getEvent
    self.parser.feed(buf)
  File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
    self._parser.Parse(data, isFinal)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc5' in position 565: ordinal not in range(128)

fixturestr 是一个 unicode 对象。消除非 ascii 字符不是一种选择。如何阻止反序列化器执行此操作?

最佳答案

尝试使用 smart_str 将您的 unicode 对象转换为字符串:

from django.utils.encoding import smart_str
from django.core import serializers

objects = serializers.deserialize('xml', smart_str(fixturestr))
o = next(objects)

关于python - django 反序列化尝试将输入编码为 ascii?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669522/

相关文章:

python - 面向初学者的关于 OSX 上的 Python 包管理的常识性建议

python - 如何使用 gRPC 进行异步流式处理?

sql-server - sqlcmd 和/或 PowerShell 包装 XML 输出

django - 管理界面可编辑 Django 应用程序设置

django - 如何在Django的同一页上返回结果?

Python + Selenium : wait for disappearance of web element

python - datetime.datetime.ctime() 函数返回固定宽度的字符串吗?

xml - 更新 xml 值的脚本

java - dom4j SAXReader - 停止解析

python - 在 tastypie-swagger 中指定参数