我正在尝试使用 py2neo 从我的 neo4j 数据库中检索一些值
query_results = neo4j.CypherQuery(graph_db,"START n=node(*) MATCH (n:Concept) RETURN n.name, ID(n) ORDER BY n.name ASC LIMIT 200").stream()
result = []
for record in query_results:
result.append({'id':record[1],'name':unicode(record[0]).encode("utf-8")})
这在大多数情况下都可以正常工作,但是当我有一个像“Hand-Schüller-Christian histiocyte (cell)”这样的 n.name 时会失败
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 8: ordinal not in range(128)
错误在“for record in query_results:”行抛出,并且在py2neo源中抛出以下错误
File "build/bdist.macosx-10.9-intel/egg/py2neo/neo4j.py", line 1141, in __iter__
yield self._record(*_hydrated(assembled(row)))
File "build/bdist.macosx-10.9-intel/egg/py2neo/neo4j.py", line 178, in _hydrated
return type(data)([_hydrated(datum) for datum in data])
File "build/bdist.macosx-10.9-intel/egg/py2neo/neo4j.py", line 177, in _hydrated
elif is_collection(data):
File "build/bdist.macosx-10.9-intel/egg/py2neo/util.py", line 134, in is_collection
hasattr(None, obj)
我不确定它是 py2neo 错误还是做错了什么。任何建议都会很棒。
谢谢