首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqlite3::Sqlite3异常)

Sqlite3::Sqlite3异常)
EN

Stack Overflow用户
提问于 2012-04-20 03:25:43
回答 1查看 374关注 0票数 0

我正在尝试转换一些JSON数据,并使用Ruby将其插入到sqlite3数据库中。JSON来自githubarchive.com我遵循了这个问题的建议:Escaping Strings For Ruby SQLite Insert,我的代码如下所示:

代码语言:javascript
复制
Yajl::Parser.parse(open(input).read) do |event|
r = CSV::Row.new(headers, [])
flatmap({}, event).each do |k,v|
  v = (Time.parse(v).utc.strftime('%Y-%m-%d %T') rescue '') if k =~ /_at$/
  if r.include? k
    r[k] = v
  else

   puts "Unknown field: #{k}, value: #{v}"
        end
    end 
#   tmp << r.to_s
db = SQLite3::Database.open( "../github.sqlite" )
val = (['?'] * 186).join(',')
ins = db.prepare("insert into Sheet1_copy values (#{val})")
ins.execute(r.to_s)

上面的部分取自他们的git项目。现在,当我尝试对任何数据运行此操作时,我会得到

代码语言:javascript
复制
gems/sqlite3-1.3.5/lib/sqlite3/statement.rb:67:in `step': constraint failed (SQLite3::ConstraintException)

有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-04-20 14:36:33

您还需要准备一些东西才能正确加载它。这里有一个可用的副本:https://gist.github.com/2426614

请注意,我没有使用预准备语句,因为在所有不同类型的事件中填充空行需要更多的操作。话虽如此,它的运行速度还是相当快的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10235324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档