Поиск в каталоге Json с использованием Python - PullRequest
0 голосов
/ 28 июня 2019

У меня есть файл Json, в котором содержится определенный каталог.Я пытаюсь написать что-то, что позволит пользователю входить и выходить из каждой «папки», создавая почти командную строку «проводник»

мой файл json отформатирован так:

{
    "children": [
        {
            "children": [
                {
                    "name": "somefile.cmd",
                    "path": "C:\\some\\directory\\somefile.cmd",
                    "type": "file"
                },
                {
                    "name": "otherfile.ps1",
                    "path": "C:\\some\\directory\\somefile.ps1",
                    "type": "file"
                },
                {
                    "name": "somefile.exe",
                    "path": "C:\\some\\directory\\somefile.exe",
                    "type": "file"
                }
            ],
            "name": "somefile",
            "path": "C:\\some\\directory",
            "type": "folder"
        },
        {
            "children": [
.
.
.

Моя функция, которую я использую

def search_json(filename):
    json_file = open(filename)
    data = json.load(json_file)
    subsyst_count = 1
    subsyst_list = []
    #list of subsystems
    for i in data['children']:
        print(subsyst_count, i['name'])
        subsyst_list.append(i['name'])
        subsyst_count = subsyst_count + 1
    user = int(input('Which Subsystem?'))
    #search json for children of subsyst_list[user]
    print(subsyst_list[user])
    for i in data['children']:
        if i['name'] == subsyst_list[user]:
            print(i['name'])
            for j in i['name']:
                print(j[0])

Я ожидаю, что она войдет в первую дочернюю папку, подсчитает все папки под ней и предложит пользователю выбрать номер, в какую подсистему войти.Затем я хотел, чтобы он выполнил поиск в этом новом каталоге «дочерней» подсистемы и снова указал, в какой файл перейти или какой файл выбрать.вместо этого он выдает ключевую ошибку, когда у меня есть

   print(j['name'])

, а затем функция просто произносит имя подсистемы, когда у меня есть:

   print(j['0'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...