2

我有一个 JSON 文件中的数据转储,我试图将其拉入我的应用程序,但我认为它需要一些预处理,只是不确定执行此操作的最佳方法。

该文件的格式使得数据不是一个 JSON 数组,而是每一行都是一个完整的 JSON 数组。好像:

{"username": "Bob", "id": 123456}
{"username": "Jane", "id": 456123}
{"username": "Paul", "id": 789456}
{"username": "Mary", "id": 159794}

行尾没有逗号分隔 - 没有括号等。当我尝试将其拉入时,通过我的种子JSON.parse说它抛出和错误 - 不喜欢缺乏适当的格式并希望它作为一个完整的 JSON 数据集而不是然后每一行都是它自己的集合。

提取这些数据的最佳方法是什么?谢谢!

4

3 回答 3

4

我不确定您在导入数据后要对数据做什么,我假设您想将其插入数据库。

我会写一个这样的 rake 任务:

task :import_users do
  File.open('/path/to/your.file', 'r') do |file|
    file.each do |line|
      user_attrs = JSON.parse line
      User.create! user_attrs
    end
  end
end
于 2012-09-25T15:54:16.637 回答
0

您总是可以逐行阅读,并分别解析每一行。不过,这可能不是很优化。一个例子:(File.readlines('filename').each { |line| ... }仅在 1.9+ 中)

于 2012-09-25T15:43:47.143 回答
0

如果文件不是太大,您可以将其转换为:

[
 {...},
 {...},
 {...}
]

或者,如果速度不是太关键,您可以遍历每一行并导入它。

于 2012-09-25T15:44:36.187 回答