我有一个要使用递归函数进行迭代的json文件,但是如何检查我的json结构是string,array,list还是object?
如果其数组和数组内部有5个对象,如何在python中使用递归函数访问对象?
{{ID:1234,Custid:23456,req:{name:abc,std:2}} {ID:2789,custid:56897}}这是json ...我使用数据加载读取了它< / p>
答案 0 :(得分:2)
使用递归,然后使用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
等用例
答案 1 :(得分:0)
使用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