我在使用py2neo查询neo4j时遇到错误,似乎无法解决它。我的代码:
data, metadata = cypher.execute(self._db, 'START s=node:pages(title="%s") MATCH (s)-[r]->(n) RETURN n.title' % topic)和错误
File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher.py", line 50, in execute
results = query.execute(**params or {})
File "/usr/local/lib/python2.7/dist-packages/py2neo/neo4j.py", line 1011, in execute
return CypherResults(self._execute(**params))
File "/usr/local/lib/python2.7/dist-packages/py2neo/neo4j.py", line 1053, in __init__
self._data = [record(*_hydrated(row)) for row in content["data"]]
File "/usr/local/lib/python2.7/dist-packages/py2neo/neo4j.py", line 178, in _hydrated
return type(data)([_hydrated(datum) for datum in data])
File "/usr/local/lib/python2.7/dist-packages/py2neo/neo4j.py", line 177, in _hydrated
elif is_collection(data):
File "/usr/local/lib/python2.7/dist-packages/py2neo/util.py", line 134, in is_collection
hasattr(None, obj)
None: 'ascii' codec can't encode character u'\xeb' in position 5: ordinal not in range(128)有什么线索吗?
谢谢
发布于 2013-09-28 06:35:35
这看起来可能是由查询结果数据中意外的字节序列或字符集触发的py2neo中的错误。您是否能够详细说明您希望它返回的数据,以及您是否使用UTF-8?
发布于 2013-09-28 04:13:44
我会说在topic中有一个非ASCII字节,这可能是导致它的原因。如果你有这个问题,你可以试着
data, metadata = cypher.execute(self._db, u'START s=node:pages(title="%s") MATCH (s)-[r]->(n) RETURN n.title' % topic)而这实际上可能会解决你的问题。(我只想对此进行评论,但我不能,对不起。)如果这不起作用,请尝试:
(u'STATE s=node:...' ... % topic.decode('utf-8')).encode('utf-8')这样就行了。
https://stackoverflow.com/questions/19054980
复制相似问题