当数据包含非 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 文档声明所有 String 对象都保存为 unicode,那么为什么我的 unicode 数据不被接受?我希望我只是错过了一些愚蠢的事情。