将Twitter搜索结果保存到JSON文件

时间:2013-04-12 17:07:13

标签: ruby twitter

我使用twitter ruby​​ gem来获取twitter搜索结果。来自Github的示例代码从搜索结果中提取信息。我想知道如何将搜索结果(我认为是JSON)保存到单独的JSON文件中。
以下是示例代码的一部分:

results = @search.perform("$aaa", 1000)
aFile = File.new("data.txt", "w")
results.map do |status|
myStr="#{status.from_user}: #{status.text}  #{status.created_at}"
aFile.write(myStr)
aFile.write("\n")
end

有没有办法将所有搜索结果保存到单独的JSON文件而不是将字符串写入文件?        提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果要保存到文件,只需打开文件,将其写入,然后关闭它:

File.open("myFileName.txt", "a") do |mFile|
    mFile.syswrite("Your content here")
    mFile.close
end

当您使用open时,如果文件不存在,您将创建该文件。

要注意的一件事是,有不同的方法来打开文件,其中将确定程序写入的位置。 "a"表示它会将您写入文件的所有内容追加到当前内容的末尾。

以下是一些选项:

r   Read-only mode. The file pointer is placed at the beginning of the file. This is the default mode.
r+  Read-write mode. The file pointer will be at the beginning of the file.
w   Write-only mode. Overwrites the file if the file exists. If the file does not exist, creates a new file for writing.
w+  Read-write mode. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing.
a   Write-only mode. The file pointer is at the end of the file if the file exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for writing.
a+  Read and write mode. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing.

因此,在您的情况下,您需要提取要保存的数据,然后将其写入我显示的文件中。您还可以通过执行以下操作指定文件路径:

File.open("/the/path/to/yourfile/myFileName.txt", "a") do |mFile|
    mFile.syswrite("Your content here")
    mFile.close
end

另一件需要注意的事情是open不会创建目录,因此您需要自己创建目录,或者您可以使用您的程序来创建目录。这是一个有助于文件输入/输出的链接:

http://www.tutorialspoint.com/ruby/ruby_input_output.htm