Если json.load
не работает, я предполагаю, что ваш JSON файл, вероятно, отформатирован неправильно. Попробуйте заставить его работать с простым файлом, например:
{
"test": 0
}
После того, как это сработает, попробуйте загрузить один из ваших 100 файлов. Я скопировал и вставил вашу функцию read_json_file
, и я могу видеть данные в моем файле: print(read_json_file("data.json"))
Для циклического просмотра файлов и их объединения: это не похоже на ваш combine_dictionaries
функция на 100% еще для того, что вы хотите сделать. update
не объединяет словари в строки, как вы хотите; он заменит ключи одного словаря на ключи другого, и, поскольку каждый файл имеет одинаковые поля, результирующий словарь будет последним в списке. Технически, список словарей - это уже список строк, который вам нужен, и вы можете индексировать список на основе номера строки, например, list_of_dictionaries[0]
получит словарь, созданный из file1, если вы заполните список в порядке file1 в файл100. Если вы хотите на go дальше номеров файлов, вы можете поместить все эти словари в другой словарь, если можете сгенерировать уникальный ключ для каждого словаря:
def combine_dictionaries(dictionary_list):
my_dictionary = {}
for dictionary in dictionary_list:
my_dictionary[generate_key(dictionary)] = dictionary
return my_dictionary
Где generate_key
- это функция, которая вернет ключ, уникальный для этого словаря. Теперь combined_dictionary.get(0)
получит словарь file1, а combined_dictionary.get(0).get("somefield")
получит данные "somefield" из file1.