簡體   English   中英

即使密鑰存在,也檢查 dict 中的密鑰是否返回 false

[英]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.

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