def hash_redis():
redis_info = {
"host": "127.9.9.1",
"port": 6379,
"db": 10
}
msg_dict = get_news()
# 连接redis,可以在连接时直接添加 decode_responses=True,这样在输入结果的时候直接是 str 类型,而不是 byte 类型
r = redis.Redis(**redis_info, decode_responses=True)
for i in list(msg_dict.keys()):
if not r.hexists("msg1", i):
r.hset("msg1", i, msg_dict[i])
logger.info(f"新闻:{i}-- 写入redis成功!")
msg_dict.pop(i)
logger.info(f"新闻: {i}-- 已经推送过了!")
return msg_dict
解决办法: 将 for i in list(msg_dict.keys()) 改成 for i in msg_dict.keys
def hash_redis():
redis_info = {
"host": "127.0.0.1",
"port": 6379,
"db": 10
}
msg_dict = get_news()
# 连接redis,可以在连接时直接添加 decode_responses=True,这样在输入结果的时候直接是 str 类型,而不是 byte 类型
r = redis.Redis(**redis_info, decode_responses=True)
for i in msg_dict:
if not r.hexists("msg1", i):
r.hset("msg1", i, msg_dict[i])
logger.info(f"新闻:{i}-- 写入redis成功!")
msg_dict.pop(i)
logger.info(f"新闻: {i}-- 已经推送过了!")
return msg_dict
更多推荐