Ruby 将json数据导入redis
我是redis和ruby新手,我使用以下代码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] 返回以下错误:哈
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']