当数据包含非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 docs state将所有String对象都保存为unicode,那么为什么我的unicode数据不被接受?我希望我只是想念一些愚蠢的东西。
最佳答案
是的,这是一个错误。它已在灯泡0.3.23中修复:
https://github.com/espeed/bulbs/commit/7f104cdbc30f27ea76b036cfa0d0a694f074153e