文章内容
2022/5/19 19:02:38,作 者: 黄兵
AttributeError: 'str' object has no attribute 'items'
今天在使用 Redis 缓存数据的时候,出现了如下错误:
AttributeError: 'str' object has no attribute 'items'
具体错误代码如下:
def article_cache(self): conn = self._redis.conn_redis() # 缓存文章,缓存10篇 get_article_list = self._init_recommended.article_cache_main() if get_article_list: conn.zadd('inv:crawler_article', json.dumps(get_article_list))
出现错误的原因
上面 get_article_list 返回的是一个列表,这里使用的 Redis 里面的 zadd()
,我们知道 zadd()
是将带有给定分值的成员添加到有序集合里面,这里返回的 List 经过 json 反序列化之后变成 string ,显然不行。
解决方案
使用 Redis 里面的 set,作用是设置存储在给定键中的值。
修改代码如下:
def article_cache(self): conn = self._redis.conn_redis() # 缓存文章,缓存10篇 get_article_list = self._init_recommended.article_cache_main() if get_article_list: conn.set('inv:crawler_article', json.dumps(get_article_list))
这样就不会报上面的错误了。
评论列表