Как добавить элементы в файл, содержащий массив json?

#python #json

#python #json

Вопрос:

Я пытаюсь добавить user_id к user_blacklist.json :

 def follow(self, user_id):
    with open('user_blacklist.json', 'w') as fp:
    json.dump(user_id, fp)
  

user_blacklist.json выглядит примерно так:

 {
    "user_blacklist": [
      "1691998847",
      "1691998847",
      "APPEND_NEW_ID_HERE"
    ]
}
  

Но, как вы можете видеть, я перезаписываю весь файл с помощью user_id вместо добавления в список. Я уверен, что это просто, но у меня нулевой опыт работы с Python.

Комментарии:

1. data = json.load(...) ; data['user_blacklist'].append(user_id) ; json.dump(data, ...)

2. Ммммммммм, я не могу понять, почему вы задаете такой вопрос,? у вас уже есть 14.9K!

3. @pylover То, что у меня 14.9K, не означает, что я знаю Python.

4. Просто шучу, братан..

Ответ №1:

Вы должны прочитать весь json, добавить элемент и сохранить весь json.

 with open('user_blacklist.json', 'r') as fp:
    data = json.load(fp)

data['user_blacklist'].append(user_id)

with open('user_blacklist.json', 'w') as fp:
    json.dump(data, fp)
  

Комментарии:

1. Спасибо. Вау, Python такой красивый и простой по сравнению с JavaScript. Жаль, что это не язык сценариев по умолчанию для браузера.