簡體   English   中英

Python redis get方法針對不存在的鍵引發AttributeError

[英]Python redis get method raises an AttributeError for non existing key

我有以下代碼部分:

rd = redis.Redis(host, port, db, password, socket_timeout, connection_pool, charset, errors, unix_socket_path)

check_flag = rd.get("some_key") if check_flag is not None: do_something()

但是Redis的get方法會引發AttributeError: AttributeError: 'str' object has no attribute 'iteritems'

我不確定是否可以在此處共享追溯的全文。

我正在使用Redis 2.10.5

有人有什么想法嗎?

PS我正在通過stackoverflow尋找相同的問題,但沒有成功

UPD:添加了完整的追溯

init_flag = self.redis.get("face_init") File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 880, in get return self.execute_command('GET', name) File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 572, in execute_command connection.send_command(*args) File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 563, in send_command self.send_packed_command(self.pack_command(*args)) File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 538, in send_packed_command self.connect() File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 439, in connect sock = self._connect() File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 475, in _connect for k, v in iteritems(self.socket_keepalive_options): File "/usr/local/lib/python2.7/dist-packages/redis/_compat.py", line 27, in iteritems return x.iteritems() AttributeError: 'str' object has no attribute 'iteritems'

看起來您可能在redis-py庫中發現了一個錯誤。

首先,我將嘗試更新到該庫的最新版本,並嘗試其他發行版,然后查看您是否發現任何其他行為。 您應該能夠從此處https://github.com/andymccurdy/redis-py檢出任何給定的發行版,然后使用此處列出的命令對檢出的代碼進行本地安裝。

您可能還想在一些不同的網絡條件下嘗試。 跟蹤中的該代碼路徑看起來與將數據包發送到Redis服務器有關,因此可能值得測試當您未連接到有效服務器地址時會發生什么。

您還可以從redis cli中運行Redis Monitor命令,以查看是否有任何東西正在傳送到服務器。

如果您仍然看不到這些額外的故障排除方法明顯有問題,請在Redis-py github存儲庫上打開一個問題,看看它們是否可以幫助您找到根本的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM