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