当数据包含非ascii数据时,我试图通过bulls向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()
。在
一些希望相关的信息:
^{pr2}$Neo4J文档state所有字符串对象都保存为unicode,那么为什么我的unicode数据不被接受?我希望我只是错过了一些愚蠢的事情。在
在用Python和unicode更新了自己之后,我解决了这个问题,不过只不过用try、catch来包装我的问题行,然后将问题数据编码为“utf-8”。不是最优雅的解决方案,但下面的代码似乎对我有用。在
我唯一的问题就是这个。如果
bulbs
记录器处于活动状态,则在第一次调用create()
时记录带有回溯的错误消息。不是破坏交易,只是有点烦人。在没有在Python3上尝试过,有人想插嘴吗?在
是的,这是个虫子。固定在灯泡中0.3.23:
https://github.com/espeed/bulbs/commit/7f104cdbc30f27ea76b036cfa0d0a694f074153e
相关问题 更多 >
编程相关推荐