ruby - 将json数据导入redis

标签 ruby redis sinatra

我是 redis 和 ruby​​ 的新手,我正在使用以下代码

response = HTTParty.get('posts.json')
json = JSON(response.body)

json.each do |item|
    puts item
    puts json[item]
    puts item['content']
    redis.hset 'latest_posts', item, item['title']
end

puts json[item] 

返回以下错误 no implicit conversion of Hash into Integer

在每个循环中,我想输出键,例如 id、title、content with puts item(现在返回整个对象)和键中的 json[item] 数据有什么帮助吗?例如,如果我尝试

%w{id title content}.each do |key|
        puts key
        puts json[key]
end

同样 没有将 String 隐式转换为 Integer

最佳答案

从您的代码看来,您似乎希望在 JSON 中包含一个哈希数组。

我在这里看到两个问题:

1.

puts json[item]
puts item['content']

item 是一个散列。 json[item] 对我来说毫无意义。

2.

redis.hset 'latest_posts', item, item['title']

应该将 Redis 哈希 'latest_posts' 中的键 item 设置为值 item['title']。但是 item 是一个散列,我认为 Redis 需要一个字符串作为文件名。

顺便说一句,不是JSON.parse response.body吗?

关于ruby - 将json数据导入redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17733818/

相关文章:

javascript - Rails 使 flash[] 在 Javascript 重新加载时显示

go - 如何从redis Do()结果中提取数据

node.js - 如何在 'message' 监听器上删除 Redis

django - 为什么我不应该在我的 Django 应用程序中使用 Redis 过早地进行优化?

ruby - 如何使用从 heroku 以编程方式获取当前主机并在 rspec 测试中使用它?

sqlite - 将sqlite3 db推送到heroku时出现问题:lib/taps/schema.rb:30:在sqlite_config中:未定义的方法[[]]为nil:NilClass(NoMethodError)

ruby - 寻找一个匹配所有单词的正则表达式,除了那些[括号内]

ruby - 如何按长度对 Ruby 字符串数组进行排序?

ruby - 在 sinatra 上将 opalrb 与 sprockets 集成

ruby - 欧拉计划 #368(数学公式)