json

Reportar um problema Ver código-fonte Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

O módulo json é um módulo Starlark de funções relacionadas a JSON.

Membros

decode

unknown json.decode(x, default=unbound)

A função de decodificação tem um parâmetro posicional obrigatório: uma string JSON. Ele retorna o valor do Starlark que a string denota.
  • "null", "true" e "false" são analisados como None, True e False.
  • Os números são analisados como int ou como pontos flutuantes se tiverem um ponto decimal ou expoente. Embora o JSON não tenha sintaxe para valores não finitos, valores muito grandes podem ser decodificados como infinito.
  • um objeto JSON é analisado como um novo dict Starlark descongelado. Se a mesma string de chave ocorrer mais de uma vez no objeto, o último valor da chave será mantido.
  • Uma matriz JSON é analisada como uma nova lista Starlark descongelada.
Se x não for uma codificação JSON válida e o parâmetro default opcional for especificado (incluindo especificado como None), essa função vai retornar o valor default. Se x não for uma codificação JSON válida e o parâmetro default opcional não for especificado, essa função vai falhar.

Parâmetros

Parâmetro Descrição
x string; required
string JSON para decodificar.
default o padrão é unbound
Se especificado, o valor a ser retornado quando x não pode ser decodificado.

encode

string json.encode(x)

A função de codificação aceita um argumento posicional obrigatório, que é convertido em JSON por casos:

  • None, True e False são convertidos em "null", "true" e "false", respectivamente.
  • Um int, não importa o tamanho, é codificado como um número inteiro decimal. Alguns decodificadores podem não conseguir decodificar números inteiros muito grandes.
  • Um número flutuante é codificado usando um ponto decimal ou um expoente ou ambos, mesmo que o valor numérico seja um número inteiro. É um erro codificar um valor de ponto flutuante não finito.
  • Um valor de string é codificado como um literal de string JSON que denota o valor. Cada alternativo não pareado é substituído por U+FFFD.
  • Uma matriz é codificada como um objeto JSON, na ordem das chaves. Ocorrerá um erro se alguma chave não for uma string.
  • Uma lista ou tupla é codificada como uma matriz JSON.
  • Um valor semelhante a um struct é codificado como um objeto JSON, na ordem de nome de campo.
Um tipo definido pelo aplicativo pode definir a própria codificação JSON. A codificação de qualquer outro valor resulta em um erro.

Parâmetros

Parâmetro Descrição
x obrigatório

encode_indent

string json.encode_indent(x, *, prefix='', indent='\t')

A função encode_indent é equivalente a json.indent(json.encode(x), ...). Consulte indent para conferir a descrição dos parâmetros de formatação.

Parâmetros

Parâmetro Descrição
x obrigatório
prefix string. O padrão é ''
.
indent string. O padrão é '\t'
.

indent

string json.indent(s, *, prefix='', indent='\t')

A função de recuo retorna a forma recuada de uma string codificada em JSON válida. Cada elemento de matriz ou campo de objeto aparece em uma nova linha, começando com a string de prefixo seguida por uma ou mais cópias da string de recuo, de acordo com a profundidade de aninhamento. A função aceita um parâmetro posicional obrigatório, a string JSON, e dois parâmetros de string opcionais de palavra-chave, prefixo e recuo, que especificam um prefixo de cada nova linha e a unidade de recuo. Se a entrada não for válida, a função pode falhar ou retornar uma saída inválida.

Parâmetros

Parâmetro Descrição
s string; required
prefix string. O padrão é ''
.
indent string. O padrão é '\t'
.