亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在for循環中比較python中JSON對象的值

在for循環中比較python中JSON對象的值

Cats萌萌 2023-06-20 10:26:01
我有一個 JSON 格式的對象,它是我從 API 主體的用戶那里收到的。當在 Python 中存儲并檢查其類型時,它顯示為 dict。但是字典中的鍵是作為一個集合存儲的。x = {'test': {'shipmentInfo': {'Ready Date', 'Ready Time', 'Delivery Date', 'Service Level'}}}我將字典的所有鍵存儲在如下列表中check_list = ["test", "shipmentInfo", "Ready Date","Ready Time","Delivery Date","Service Level"]我正在編寫一個簡單的條件來檢查字典中給出的每個鍵是否都出現在我的列表中。如果任何密鑰不存在,它應該說密鑰丟失missing = [field for field in x if field not in check_list]   if len(missing) == 0:       print("All values are entered")   else:       [print(f"Missing value: {field}") for field in missing]我的情況的問題是,它只是檢查字典中是否存在“測試”。它沒有檢查我需要的主要密鑰(“就緒日期”、“就緒時間”、“交貨日期”、“服務級別”)。如果我從列表中刪除一個值,比如交貨日期("Ready Date","Ready Time","Service Level")我使用的邏輯會給我這個結果All values are entered如何獲?。ā熬途w日期”、“就緒時間”、“交貨日期”、“服務水平”)并將其與我的列表進行比較?
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

這些值{'Ready Date', 'Ready Time', 'Delivery Date', 'Service Level'}組成一個集合,它們不是內部字典的鍵,但仍然可以檢查它們是否存在于原始字典中x:


已實現的dictionary_to_list函數采用原始字典x并將其展平為一個列表,該列表包含列表中的所有鍵和值。


x = {'test': {'shipmentInfo': {'Ready Date', 'Ready Time', 'Delivery Date', 'Service Level'}}}

check_list = ["test", "shipmentInfo", "Ready Date","Ready Time","Delivery Date","Service Level"]



def dictionary_to_list_helper(d, l):

    for k, v in d.items():

        l.append(k)

        if isinstance(v, list) or isinstance(v, set):

            for item in v:

                l.append(item)

        elif isinstance(v, dict):

            dictionary_to_list_helper(v, l)


def dictionary_to_list(d):

    l = []

    dictionary_to_list_helper(d, l)

    return l


missing = [field for field in dictionary_to_list(x) if field not in check_list]

if len(missing) == 0:

   print("All values are entered")

else:

   [print(f"Missing value: {field}") for field in missing]


查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號