将 py2neo 记录列表输出到文本文件
Output py2neo recordlist to text file
我正在尝试使用 python (v3.4) 作为 Neo4j 和文本输出文件之间的 'sandwich'。这段代码给了我一个 py2neo RecordList:
from py2neo import Graph
from py2neo.packages.httpstream import http
http.socket_timeout = 9999
graph = Graph('http://localhost:7474/db/data/')
sCypher = 'MATCH (a) RETURN count(a)'
results = graph.cypher.execute(sCypher)
我还有一些非常简单的文本文件交互:
f = open('Output.txt','a') #open for append access
f.write ('\n Hello world')
f.close
我真正想做的是 f.write (str(results))
但它真的一点也不喜欢那样。有人可以帮我将 RecordList 转换成字符串吗?我假设我需要遍历列以获取每个列名,然后遍历每条记录并单独写入,但我不知道如何去做。我最终打算这样做的地方是每次都更改 Cypher。
我能找到的最接近的相关问题是:。我敢肯定有人会读到这篇文章并说直接使用 REST API 是一种更好的吐出文本的方式,但我还没有达到那个水平...
提前致谢,
安迪
以下是如何迭代 RecordList
并将单个 Records
的列打印到文件(例如,逗号分隔)。如果您 return 的属性是列表,您将需要更多格式来获取输出文件的字符串。
# use with to open files, this makes sure that it's properly closed after an exception
with open('output.txt', 'a') as f:
# iterate over individual Records in RecordList
for record in results:
# concatenate all columns of the Record into a string, comma separated
# list comprehension with str() to handle int and other types
output_string = ','.join([str(x) for x in record])
# actually write to file
print(output_string, file=f)
输出文件的格式当然取决于你想用它做什么。
我正在尝试使用 python (v3.4) 作为 Neo4j 和文本输出文件之间的 'sandwich'。这段代码给了我一个 py2neo RecordList:
from py2neo import Graph
from py2neo.packages.httpstream import http
http.socket_timeout = 9999
graph = Graph('http://localhost:7474/db/data/')
sCypher = 'MATCH (a) RETURN count(a)'
results = graph.cypher.execute(sCypher)
我还有一些非常简单的文本文件交互:
f = open('Output.txt','a') #open for append access
f.write ('\n Hello world')
f.close
我真正想做的是 f.write (str(results))
但它真的一点也不喜欢那样。有人可以帮我将 RecordList 转换成字符串吗?我假设我需要遍历列以获取每个列名,然后遍历每条记录并单独写入,但我不知道如何去做。我最终打算这样做的地方是每次都更改 Cypher。
我能找到的最接近的相关问题是:
提前致谢, 安迪
以下是如何迭代 RecordList
并将单个 Records
的列打印到文件(例如,逗号分隔)。如果您 return 的属性是列表,您将需要更多格式来获取输出文件的字符串。
# use with to open files, this makes sure that it's properly closed after an exception
with open('output.txt', 'a') as f:
# iterate over individual Records in RecordList
for record in results:
# concatenate all columns of the Record into a string, comma separated
# list comprehension with str() to handle int and other types
output_string = ','.join([str(x) for x in record])
# actually write to file
print(output_string, file=f)
输出文件的格式当然取决于你想用它做什么。