py2neo 定义节点 print 输出时中文转换为 unicode 编码
为了解决这一问题,修改 py2neo 包下的编码解码方式
- 进入 conda 环境下对应目录(linux 系统)
/home/solejay/miniconda3/lib/python3.8/site-packages/py2neo/cypher
- 编辑
encoding.py
文件
for i in range(0, len(parts), 2):
parts[i] = (X_ESCAPE.sub(u"\\\\u00\\2", parts[i].encode("unicode-escape").decode("utf-8")).
replace(quote, escaped_quote).replace(u"\\u0008", u"\\b").replace(u"\\u000c", u"\\f"))
return quote + u"".join(parts) + quote
改为
for i in range(0, len(parts), 2):
parts[i] = (X_ESCAPE.sub(u"\\\\u00\\2", parts[i].encode("unicode-escape").decode("unicode-escape")).
replace(quote, escaped_quote).replace(u"\\u0008", u"\\b").replace(u"\\u000c", u"\\f"))
return quote + u"".join(parts) + quote
核心就是将 decode("utf-8")
改为 decode("unicode-escape")
参考链接