[英]Check for key in dict returning false even though the key exists
我有這個 function:
def step_list_kafka_topics(context):
topics = context.kafka.list_kafka_topics()
if 'my-topic-1' in topics:
print('TRUE: {}'.format(topics))
else:
print('FALSE {}'.format(topics))
這是我得到的回應:
FALSE {b'my-topic-1': None, b'my-topic-2': None, b'my-topic-3': None}
我還嘗試if 'my-topic-1' in topics.keys()
但得到了相同的結果。
我究竟做錯了什么?
正如評論中所說,發生這種情況是因為您的鍵是bytes
而不是str
。 因此,解決此問題的一種方法是將它們解碼回字符串,如下所示:
def step_list_kafka_topics(context):
topics = context.kafka.list_kafka_topics()
topics = {key.decode("utf-8") for key in topics} #<-- just add this
if 'my-topic-1' in topics:
print('TRUE: {}'.format(topics))
else:
print('FALSE {}'.format(topics))
print()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.