#python-3.x
#python-3.x
Вопрос:
В рамках цикла я пытаюсь добавить пару ключ-значение в мой файл json.
На первой итерации json-файл всегда пуст.
На второй итерации я хочу добавить новый ключ и значение в мои ключевые «статьи». Но это не работает. Я получаю проблему.
Спасибо за ваши подсказки!
проблема:
list indices must be integers or slices, not set
мой подход:
keywordJson = [{'articles': [{'id': filename, 'phrases': phrases}]}]
with open(json_path, "r ", encoding='utf-8') as json_file:
if i == 0:
json_decoded = keywordJson
json.dump(keywordJson, json_file, ensure_ascii=False)
else:
json_decoded = json.load(json_file)
json_decoded[{"articles"}] = [{"id": filename, "phrases": phrases}]
json.dump(json_decoded, json_file, ensure_ascii=False)
Ответ №1:
Когда вы говорите [{"articles" : <whatever>}]
, квадратные скобки указывают, что эта структура данных представляет собой список, содержащий один элемент, который является словарем. Таким образом, вам понадобится что-то вроде:
json_decoded[0]["articles"] = [{"id": filename, "phrases": phrases}]
Однако я не уверен, что вы действительно хотите, чтобы все эти списки были там. Это может быть чище:
keywordJson = {'articles': {'id': filename, 'phrases': phrases}}
И тогда код был бы:
json_decoded["articles"] = {"id": filename, "phrases": phrases}