3.8. Использовать для демонстрации фрагментов кода только специальный тег code или специальные демонстрационные ресурсы (например, JsFiddle - https://jsfiddle.net/). Размещение фрагментов кода в виде изображений запрещено.
3.8. Использовать для демонстрации фрагментов кода только специальный тег code или специальные демонстрационные ресурсы (например, JsFiddle - https://jsfiddle.net/). Размещение фрагментов кода в виде изображений запрещено.
def getGroupPathById(file_path, group_id):
def addElement(path, value):
path.append(value)
return path
def checkField(data):
if data['type'] == "group" and data['key'] == group_id:
return 3
elif data['type'] == "group" and data['key'] != group_id:
return 2
elif data['type'] != "group":
return 1
else:
return 0
def findField(data, path=[]):
if data.get('fields'):
fields = data.get('fields')
addElement(path, 'fields')
elif data.get('sub_fields'):
fields = data.get('sub_fields')
addElement(path, 'sub_fields')
else:
return None
for field_index, field in enumerate(fields):
if checkField(field) == 3:
return addElement(path, field_index)
elif checkField(field) == 2:
result = findField(field, addElement(path.copy(), field_index))
if result is not None:
return result
with open(file_path, 'r') as fp:
data = json.load(fp)
for branch_index, branch in enumerate(data):
full_path = None
result = findField(branch)
if result is not None:
full_path = addElement([], branch_index) + result
break
return full_path
json_path = 'json/page-home.json'
path = getGroupPathById(json_path, 'field_65a78d2d74bcf')
with open(json_path, 'r') as fp:
data = json.load(fp)
for item in path:
data = data[item]
print(path)
print(data)
Почему доступ запрещен? Потому что сайты типа днс не хотят что бы по ним лазали боты.
Как минимум поэкспериментируйте с заголовками.