簡體   English   中英

在Python中使用遞歸函數和結構類型?

[英]using recursive function and structure type in python?

我有一個要使用遞歸函數進行迭代的json文件,但是如何檢查我的json結構是字符串,數組,列表還是對象?

如果它的數組和數組內部有5個對象,如何在python中使用遞歸函數訪問對象?

{{ID:1234,Custid:23456,req:{name:abc,std:2}} {ID:2789,custid:56897}}這是json ...我使用數據加載讀取了它

使用遞歸,並使用type()isinstance()決定要做什么。

def handle(x):
    if isinstance(x, dict):
        # do dict stuff
        for key, val in x.items():
            handle(val)
    elif isinstance(x, list):
        # do list stuff
        for val in x:
            handle(val)
    elif isinstance(x, str):
        # do string stuff
        print(x)
    elif isinstance(x, (int, float)):
        # maybe integer, float, etc
        print(x)
    else:
        print("None???")

d = json.loads(json_string)

handle(d)

上面的遞歸實現將處理您array in array使用array in array情況, array in array使用dict in array ,等等

使用isinstance

s='this is a string (str)'
if isinstance(s,str):
    do something

還可以做多個像:

isinstance(s,(str,int))

或更無效的方式是通過檢查type

if type(s) is str:
    do something

可以使用多個類似:

type(s) in (str,int)

但是在這些解決方案中,我建議使用isinstance

暫無
暫無

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

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