我有以下資料,需要從物件名稱“item”中檢索專案。在某些情況下,它可以是一個陣列。我無法弄清楚如何在python中做到這一點。我必須迭代這些值,然后將它們放入 MYSQL 資料庫中。當回應是一個陣列時,我無法使用用于單個值的相同回圈進行迭代。
a_dict = {"ZWAS.Response": {"DATA_TT": {
"item": {"MNNS": "000000000100000134", "CBBB": "16667.000", "HARO": "004H", "MSPR": "000000004000000059",
"BDD": "2022-10-16", "MTT": "04:15:00"}}}}
b_dict = {"ZWAS.Response": {"DATA_TT": {"item": [
{"MNNS": "000000000100000134", "CBBB": "16667.000", "HARO": "004H", "MSPR": "000000004000000059",
"BDD": "2022-10-16", "MTT": "04:15:00"},
{"MNNS": "000000000100000134", "CBBB": "16667.000", "HARO": "004H", "MSPR": "000000004000000059",
"BDD": "2022-10-16", "MTT": "04:15:00"}]}}}
for key in a_dict.keys():
print(key, '->', a_dict[key])
for value in a_dict.values():
print(value)
k1 = a_dict['ZWAS.Response']
k2 = k1['DATA_TT']
mydata = k2['item']
print(len(mydata))
uj5u.com熱心網友回復:
最好的選擇是修復輸入資料,以便item鍵始終包含一個串列,即使只有一個專案。
但如果你不能這樣做,那么你需要一些這樣的代碼:
def process_data(data):
value = data["ZWAS.Response"]["DATA_TT"]["item"]
if isinstance(value, list):
items = value
else:
items = [value]
for item in items:
# whatever you want to do here:
print(item["MNNS"])
process_data(a_dict)
process_data(b_dict)
uj5u.com熱心網友回復:
使用isinstance函式檢查“專案”的型別:
item = k2['item']
if isinstance(item, list):
print("Item is list")
for x in item:
print(len(x))
elif isinstance(item, dict):
print("Item is dict")
print(len(item))
else:
print("Item is something else")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516858.html
標籤:Pythonjson解析
