String python para um ditado

String python para um ditado

Strings são usadas para enviar/comunicar dados sobre a rede, mas quando essa string é recebida por um programa, ela deve ser convertida em um tipo de dados que suporta manipulações mais rápidas. No Python, existem dicionários que permitem ao usuário armazenar dados na forma de pares ou valores de pares de chave. Estes são muito semelhantes ao JSON e, neste post, você aprenderá a converter uma corda Python em um dicionário.

O conteúdo deste guia é o seguinte:

  • Método 1: Usando o JSON.Método de carga () para converter string em dicto
  • Método 2: Usando o AST.Método literal_eval () para converter string em dicto
  • Método 3: Usando Strip () e Split () em expressões de gerador

Vamos começar com o primeiro método imediatamente.

Método 1: Usando o JSON.Método de carga () para converter string em dicto

O método loads () é usado para "carregar" uma string json e convertê -lo em um json, ou em python, um dicionário. No entanto, para que esse método funcione, a string deve estar no formato específico em que cada "chave" é encapsulada por aspas, separadas por um cólon do "valor". E cada par é separado por vírgula.

Para demonstrar o funcionamento do método LOADS () para conversão de sequência em dicionário, use o seguinte snippet de código:

importar json
stringvar = '"name": "John Doe", "Age": "20", "Occupation": "Doctor"' '
resultVar = JSON.Cargas (Stringvar)
print ("String inicial:", Stringvar)
print ("Após a conversão:", ResultVar)
print ("Digite após conversão:", tipo (resultado))

Neste snippet de código:

  • O módulo "JSON" é importado para que o usuário possa utilizar o método loads ().
  • Depois disso, a string "stringvar" é inicializada
  • O método loads () é aplicado no stringvar e o resultado é armazenado na variável "resultvar"
  • Por fim, a string original, o resultado e o tipo de resultado são impressos no terminal.

Quando este código é executado, ele produz o seguinte resultado no terminal:

Nesta saída, você pode notar facilmente que a string foi convertida com sucesso em um tipo de dados de dicto em python.

Método 2: Usando o AST.Método literal_eval () para converter string em dicto

O método literal_eval () do pacote "AST" também pode ser usado para fazer exatamente o mesmo trabalho que o método loads () do pacote "json". Para usar este método, dê uma olhada no seguinte código:

importar ast
stringvar = '"Nome": "John Doe", "Age": 20, "Ocupação": "Doctor", "Salário": 40000'
resultVar = ast.literal_eval (stringvar)
print ("String inicial:", Stringvar)
print ("Após a conversão:", ResultVar)
print ("Digite após conversão:", tipo (resultado))

Quando este código for executado, ele produzirá o seguinte resultado no terminal:

A saída verifica se a string foi convertida com sucesso em um ditado de python.

Método 3: Usando o método Eval () para converter string em dicto

Outro método muito semelhante é o método Eval () usado para avaliar se uma string é formatada corretamente ou não e retorna o dicionário convertido de volta ao chamador. Para ver seu funcionamento, pegue o seguinte exemplo de código:

stringvar = '"Nome": "John Doe", "Age": 20, "Ocupação": "Doctor", "Salário": 40000'
ResultVar = Eval (StringVar)
print ("Usando o método Eval ()")
print ("String inicial:", Stringvar)
print ("Após a conversão:", ResultVar)
print ("Digite após conversão:", tipo (resultado))

Quando este código for executado, ele produzirá a seguinte saída no terminal:

Você converteu com sucesso uma string python em um ditado python usando o método EVALL ().

Método 4: Usando Strip () e Split () em expressões de gerador

Suponha que a string não esteja no formato JSON String, e você ainda deseja convertê -la em um ditado de python. Para esse fim, você teria que utilizar vários métodos de manipulação de cordas como Strip () e Split (). Por exemplo, suponha que a string contenha pares de valor-chave, nos quais a chave e o valor são separados por um hífen “-”, E cada par é separado por uma vírgula. Por exemplo, esta é a string a ser convertida:

stringvar = "Nome - John Doe, idade - 20, ocupação - Doctor, Martial_status - Single"

Para fazer isso, o usuário pode utilizar a expressão do gerador, dê uma olhada no seguinte código:

stringvar = "Nome - John Doe, idade - 20, ocupação - Doctor, Martial_status - Single"
resultVar = dicto ((a.tira (), b.faixa())
para A, B em (Seção.dividir("-")
Para seção em Stringvar.dividir(",")))
print ("String inicial:", Stringvar)
print ("Afterconversão:", ResultVar)
print ("Digite após conversão:", tipo (resultado))

Para entender este código, comece a partir do loop mais interno:

  • A corda é fenda em todas as ocorrências de uma vírgula para obter pares de chaves individuais
  • Para cada substring de pares-chave, a string é dividida na ocorrência de um hífen “-”E as duas seções são atribuídas a variáveis“ a ”e“ b ”. O "A" mantém a parte chave, enquanto o "B" mantém a parte do valor.
  • O método Strip () é aplicado nas duas variáveis ​​"a" e "b" para remover qualquer espaços em branco antes ou depois da corda.
  • Depois disso, essas duas variáveis ​​são transmitidas para o método DIT () para criar uma nova variável de dicionário, "Resultvar"
  • Por fim, imprima a string original e a variável convertida ResultVar e seu tipo no terminal usando o método de impressão ()

Quando este código é executado, ele produz a seguinte saída:

Pode -se observar facilmente que a corda foi convertida em um ditado de python.

Conclusão

Para converter uma string em um python "dict", o usuário pode usar o método loads () do pacote "json" ou o método literal_eval () do pacote "ast". No entanto, para usar esses dois métodos, a string deve ser uma string json. Fora isso, se a string estiver em um formato diferente, o usuário terá que usar uma combinação de vários métodos de manipulação de string para criar uma expressão de gerador de trabalho.