文章内容
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))这样就不会报上面的错误了。
评论列表