Eu sou novo no Python e estou jogando com dados JSON. Gostaria de criar dinamicamente um objeto JSON adicionando algum valor-chave a um objeto JSON existente.
Eu tentei o seguinte, mas recebo TypeError: 'str' object does not support item assignment
:
import json
json_data = json.dumps({})
json_data["key"] = "value"
print 'JSON: ', json_data
json_data['key'] = 'value'
, o que não funcionará porquejson_data
não é um dicionário Python.pip list
fornece as mesmas informações e pode gerar JSON:pip list --format=json
Você pode criar o dicionário Python e serializá-lo para JSON em uma linha, e nem é feio.
fonte
Já existe uma solução fornecida que permite a construção de um dicionário (ou dicionário aninhado para dados mais complexos), mas se você deseja criar um objeto, talvez tente 'ObjDict'. Isso dá muito mais controle sobre o json a ser criado, por exemplo, reter a ordem e permite a construção como um objeto que pode ser uma representação preferida do seu conceito.
O pip instala o objeto primeiro.
fonte
json.dumps
istojson.dumps(response, sort_keys=True, indent=4)
, mas então você está preso com ordem alfabética e não a sua ordem preferida, agrupamento e representaçãoVocê pode usar a
EasyDict
biblioteca ( doc ) :[ Instalação ]:
pip install easydict
fonte
Todas as respostas anteriores estão corretas. Aqui está mais uma maneira fácil de fazer isso. Por exemplo, crie uma estrutura de dados Dict para serializar e desserializar um objeto
( Observe que None é Null em python e estou usando intencionalmente isso para demonstrar como você pode armazenar null e convertê-lo em json null)
fonte