Ruby 将json数据导入redis

Ruby 将json数据导入redis,ruby,redis,sinatra,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] 返回以下错误:哈

我是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] 
返回以下
错误:哈希值未隐式转换为整数

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

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

同样地,
没有从代码中将字符串隐式转换为整数

,您似乎希望JSON中有一个哈希数组

我在这里看到两个问题:

一,

项是散列
json[item]
对我来说毫无意义

二,

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


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

分配给什么
JSON
?你确定你用对了吗?通常您会看到
JSON.load(response.body)
。我正在使用HTTParty来加载JSON,JSON是一个分配给JSON对象的变量,只是一个名称。您应该
将JSON放在第三行上。检查
以确保它是正确的类型。您经常遇到的错误是在字符串或数组上调用
[]
时发生的错误。另外,
将json[item]放入循环中。检查
puts json[item]
puts item['content']
redis.hset 'latest_posts', item, item['title']