【问题标题】:CSV not importing JSON with correct format into databaseCSV 未将格式正确的 JSON 导入数据库
【发布时间】:2022-01-15 06:46:55
【问题描述】:

正如标题所说,这是我的代码:

require 'json'
def import_csv
  path = Rails.root.join('folder1', 'folder2', 'file.csv')
  counter = 0
  puts "inserts on table started..."
  CSV.foreach(path, headers: true) do |row|
    next if row.to_hash['deleted_at'] != nil
    counter += 1
    puts row.to_json #shows correct format
    someModel = someModel.new(row.to_hash) #imports incorrect format of json with backslash in db
    #someModel = someModel.new(row.to_json) #ArgumentError: When assigning attributes, you must pass a hash as an argument.
    someModel.skip_callbacks = true
    someModel.save!
    end
  puts "#{counter} inserts on table apps complete"
end
import_csv

我无法以正确的格式导入 CSV 文件。导入有效,但结构错误。

预期

{"data":{"someData":72}}

得到

"{\"data\":{\"someData\":72}}"

如何以正确的 JSON 格式导入它?

【问题讨论】:

    标签: json ruby-on-rails ruby csv


    【解决方案1】:

    如果所有标题在模型的列名上都是正确的 也许你可以试试:

    JSON.parse(row.to_json)
    

    【讨论】:

    • 感谢您的回复,我仍然收到错误“#ArgumentError:分配属性时,您必须传递哈希作为参数。” @kevinluo201
    猜你喜欢
    • 2014-12-28
    • 1970-01-01
    • 2019-04-15
    • 2020-03-13
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多