代码之家  ›  专栏  ›  技术社区  ›  Anonymous_hacker

在python中使用递归函数和结构类型?

  •  1
  • Anonymous_hacker  · 技术社区  · 6 年前

    我有一个json文件,我想用递归函数迭代,但是如何检查我的json结构是字符串、数组、列表还是对象?

    如果它的数组和数组内部有5个对象,那么如何在python中使用递归函数访问对象?

    {{ID:1234,Custid:23456,要求:{name:abc,std:2}}{ID:2789,custid:56897}}这是json…我使用数据中的加载读取它

    2 回复  |  直到 6 年前
        1
  •  2
  •   Tushar    6 年前

    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 , dict in array 等等

        2
  •  0
  •   U13-Forward    6 年前

    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)
    

    但在这些解决方案中,我建议使用 存在