【发布时间】:2014-08-12 15:04:09
【问题描述】:
我正在使用py2neo 从我的 neo4j 数据库中导出数据。 (在 MacOS X 上使用 Python 2.7)
这是我一直在使用的代码:
import csv
from py2neo import neo4j, cypher, node, rel
import pprint
ofile = open('mydata.csv', 'wb')
writer = csv.writer(ofile, delimiter='\t', quotechar='|', quoting = csv.QUOTE_ALL)
graph_db = neo4j.GraphDatabaseService("http://xx.xx.xx.xx:7474/db/data/")
qs = '''MATCH (a:MyLabel)
WHERE NOT a.shortdesc = ""
RETURN a.name, a.shortdesc, a.longdesc
ORDER BY a.name'''
query = neo4j.CypherQuery(graph_db, qs)
writer.writerows(query.stream())
在属性 a.shortdesc 和 a.longdesc 中显然有一些奇怪的字符,我不知道如何正确编码它们。我收到此错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 148: ordinal not in range(128)
我一直在尝试各种不同的东西...如何获取命名元组并正确编码它们以便将它们写入 csv 文件?
【问题讨论】: