【发布时间】:2013-11-06 23:20:59
【问题描述】:
当数据包含非 ascii 数据时,我在尝试通过 Bulbs 将数据添加到 Neo4J 时遇到 Unicode 错误。
以下代码失败:
from bulbs.model import Node
from bulbs.property import String
from bulbs.neo4jserver import Graph
class User(Node):
element_type="user"
name = String(nullable=False)
g = Graph()
g.add_proxy("users", User)
user_data = {u'name': u'Aname M\xf6ller'}
g.users.create(**user_data)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 7: ordinal not in range(128)
错误发生在bulbs.utils.u 函数中,通过codecs.unicode_escape_decode()。
一些希望相关的信息:
$>python -V
'2.7.3'
>>>type(user_data['name'])
type('unicode')
>>>import bulbs
>>>bulbs.__version__
'0.3'
Neo4J 文档state 将所有 String 对象保存为 unicode,那么为什么我的 unicode 数据不被接受?我希望我只是错过了一些愚蠢的事情。
【问题讨论】:
-
\xf6是ö的 latin-1,对吗? -
@Paulo Bu。用变音符号纠正 o。虽然我怀疑是导致错误的特定字符。
-
我怀疑是
ascii编码,试试这个:user_data = {u'name': u'Aname M\u00f6ller'}它可能不起作用,但只是为了确定。
标签: python unicode neo4j bulbs