Как добавить новую строку в json-файл, используя python?
`{
"294047005": {"userNick": "shinoxzu", "userVip": "no"},
"174140723": {"userNick": "Anyaka", "userVip": "yes"},
"232689205": {"userNick": "foxtoria", "userVip": "no"},
"150408330": {"userNick": "Zhenya", "userVip": "no"}
}`
надо добавить новую, такую же строку, чтобы получилось, например:
`{
"294047005": {"userNick": "shinoxzu", "userVip": "no"},
"174140723": {"userNick": "Anyaka", "userVip": "yes"},
"232689205": {"userNick": "foxtoria", "userVip": "no"},
"162762578": {"userNick": "sasha", "userVip": "yes"},
"150408330": {"userNick": "Zhenya", "userVip": "no"}
}`
также был бы благодарен, если бы рассказали про удаление строки, спасибо.
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
Вы можете привести JSON к типу данных Dict и работать с ним, как со словарём, а после - привести словарь обратно к JSON-строке
import json
a = '''{
"294047005": {"userNick": "shinoxzu", "userVip": "no"},
"174140723": {"userNick": "Anyaka", "userVip": "yes"},
"232689205": {"userNick": "foxtoria", "userVip": "no"},
"150408330": {"userNick": "Zhenya", "userVip": "no"}
}'''
# Чтение JSON в словарь из строки
b = json.loads(a) # представление JSON в виде Python-словаря (Dict)
# ... из файла
b = json.load(open('file.json'))
# в этом блоке можно работать с b, как и с любым другим словарём
b.update({"162762578": {"userNick": "sasha", "userVip": "yes"},}) # добавим новое значение
b.pop("232689205", None) # удалим значение по ключу (в данном случае - foxtoria)
# Запись словаря обратно в JSON (в строку)
a = json.dumps(b)
# ... (в файл)
json.dump(b, open('file.json', 'w'))
print(a)
print(type(a)) # убедимся, что это именно строка (JSON), а не обычный словарь
Результат:
{"294047005": {"userNick": "shinoxzu", "userVip": "no"}, "174140723": {"userNick": "Anyaka", "userVip": "yes"}, "150408330": {"userNick": "Zhenya", "userVip": "no"}, "162762578": {"userNick": "sasha", "userVip": "yes"}}
<class 'str'>