Создать вложенный json файл - PullRequest
1 голос
/ 19 февраля 2020

Я хочу создать файл json, который можно использовать в качестве файла конфигурации. У меня есть разные файлы из разных компаний, которые сообщают одну и ту же информацию с разными именами столбцов.

Я хочу использовать информацию, представленную в файле json, для запуска сценария python для консолидации всей информации из всех файлы и компании в одном основном файле.

Структура выглядит следующим образом:

{"companies":
    {"company1": [
        {"path": "C:/USER/Path/Company1/",
         "files": [
            {
                {"_CO": {"ID": "ID", "Report Number": "Report_Number"}},
                {"_TR": {"ID": "Trade_Ident", "Report Number": "Number of Report"}},    
            },
         ],
        },
    ],
    },

    {"company2": [
        {"path": "C:/USER/Path/Company2/",
         "files": [
            {
                {"_CO": {"ID": "Identification", "Report Number": "Report-Number"}},
                {"_TR": {"ID": "Ident", "Report Number": "NumberReport"}},  
            },
         ],
        },
    ],
    },
},

Однако при попытке прочитать. json in python.

* 1010 я получаю следующую ошибку *json .decoder.JSONDecodeError: Ожидаемое имя свойства заключено в двойные кавычки: строка 6, столбец 5 (символ 90)

Для чтения файла, который я использую:

import json

path = "/user_folder/USER/Desktop/Data/"

file = "ConfigFile.json"

with open(path+file) as f:
    my_test = json.load(f)

Любая помощь приветствуется, так как я не могу понять свою ошибку в файловой структуре.

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Вы получаете ошибку, потому что ваш json файл неправильно отформатирован и, следовательно, вызов json.load() вызовет JSONDecodeError.

Ваша json структура должна выглядеть,

{
    "companies": {
        "company1": [
            {
                "path": "C:/USER/Path/Company1/",
                "files": [
                    {
                        "_CO": {
                            "ID": "ID",
                            "Report Number": "Report_Number"
                        }
                    },
                    {
                        "_TR": {
                            "ID": "Trade_Ident",
                            "Report Number": "Number of Report"
                        }
                    }
                ]
            }
        ],
        "company2": [
            {
                "path": "C:/USER/Path/Company2/",
                "files": [
                    {
                        "_CO": {
                            "ID": "Identification",
                            "Report Number": "Report-Number"
                        }
                    },
                    {
                        "_TR": {
                            "ID": "Ident",
                            "Report Number": "NumberReport"
                        }
                    }
                ]
            }
        ]
    }
}

Надеюсь, это поможет вам!

0 голосов
/ 19 февраля 2020

У вас есть некоторый объект (объект с фигурными скобками) без ключей, например, в

{
    {"_CO": {"ID": "ID", "Report Number": "Report_Number"}}, ...

Объекты в JSON являются парами ключ-значение. Просто удалите внешний набор скобок, и все будет в порядке.

Вы можете использовать какой-нибудь онлайн JSON форматер / валидатор, такой как этот , и он легко укажет на проблему. В противном случае, вы можете использовать JSON linter для вашего редактора. Это просто делает работу за вас, а также улучшает отступы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...