【发布时间】:2020-10-15 09:47:38
【问题描述】:
我只是有一个想法,但不确定这是否可能(我真的希望有人可以帮助我)。
例如,如果我们有数组 - arr = ["a","b","c","d","e"]
我想使用上面的数组创建一个检查 JSON 路径的循环,如下所示:
def jsonLoop(loadedJson):
arr = ["a","b","c","d","e"]
for i in range(len(arr)):
if jsonPathChecker(loadedJson,i,arr) is not False:
return jsonPathChecker(loadedJson,i,arr)
def jsonPathChecker(loadedJson,i,arr):
if i == 0:
jv = loadedJson[arr[0]]
elif i == 1:
jv = loadedJson[arr[0]][arr[1]]
elif i == 2:
jv = loadedJson[arr[0]][arr[1]][arr[2]]
elif i == 3:
jv = loadedJson[arr[0]][arr[1]][arr[2]][arr[3]]
elif i == 4:
jv = loadedJson[arr[0]][arr[1]][arr[2]][arr[3]][arr[4]]
elif i == 5:
jv = loadedJson[arr[0]][arr[1]][arr[2]][arr[3]][arr[4]][arr[5]]
if isinstance(jv, list):
return jv # or return I so I will know where the array starts
else:
False
但我希望能够无限使用i,而不是创建一长串 if 语句
【问题讨论】:
-
您检查
if isinstance(jv, list):有什么原因吗? json 路径可以以列表、数字、字符串、字典等结尾。路径存在并且您获得终止值还不够吗? -
@DarrylG 我正在检查一个可以开始循环到更深层次的数组+这是另一个问题...
标签: python json loops for-loop