Как добавить значение ключа в данные JSON, полученные из файла с помощью Python?

Вопрос:Я новичок в Python, и я играю с данными JSON. Я хотел бы получить данные JSON из файла и добавить к этим данным значение ключа JSON "на лету". То есть, мой json_file содержит данные JSON как-то следующие: {"key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}} Я хотел бы добавить часть ключевого значения "ADDED_KEY": "ADDED_VALUE" к вышеуказанным

Вопрос:

Я новичок в Python, и я играю с данными JSON. Я хотел бы получить данные JSON из файла и добавить к этим данным значение ключа JSON “на лету”.

То есть, мой json_file содержит данные JSON как-то следующие:

{«key1»: {«key1A»: [«value1», «value2»], «key1B»: {«key1B1»: «value3»}}}

Я хотел бы добавить часть ключевого значения «ADDED_KEY»: «ADDED_VALUE» к вышеуказанным данным, чтобы использовать следующий JSON в моем script:

{«ADDED_KEY»: «ADDED_VALUE», «key1»: {«key1A»: [«value1», «value2»], «key1B»: {«key1B1»: «value3»}}}

Я пытаюсь написать что-то вроде следующего для достижения вышеуказанного:

import json json_data = open(json_file) json_decoded = json.load(json_data) # What I have to make here?! json_data.close() Лучший ответ:

Ваш json_decoded объект – словарь Python; вы можете просто добавить свой ключ к этому, затем перекодировать и переписать файл:

import json with open(json_file) as json_file: json_decoded = json.load(json_file) json_decoded[‘ADDED_KEY’] = ‘ADDED_VALUE’ with open(json_file, ‘w’) as json_file: json.dump(json_decoded, json_file)

Я использовал открытые файловые объекты в качестве контекстных менеджеров здесь (с инструкцией with), поэтому Python автоматически закрывает файл по завершении.

Ответ №1

Json возвращается из json.loads() ведет себя как родные списки/словари python:

import json with open(«your_json_file.txt», ‘r’) as f: data = json.loads(f.read()) #data becomes a dictionary #do things with data here data[‘ADDED_KEY’] = ‘ADDED_VALUE’ #and then just write the data back on the file with open(«your_json_file.txt», ‘w’) as f: f.write(json.dumps(data, sort_keys=True, indent=4, separators=(‘,’, ‘: ‘))) #I added some options for pretty printing, play around with them!

Для получения дополнительной информации посетите официальный документ

Ответ №2

Вы можете сделать

json_decoded[‘ADDED_KEY’] = ‘ADDED_VALUE’

ИЛИ

json_decoded.update({«ADDED_KEY»:»ADDED_VALUE»})

который работает хорошо, если вы хотите добавить несколько пар ключ/значение.

Конечно, вы можете сначала проверить наличие ADDED_KEY – зависит от ваших потребностей.

И я предполагаю, что вы хотите, возможно, захотите сохранить эти данные обратно в файл

json.dump(json_decoded, open(json_file,’w’))

Оцените статью
Добавить комментарий