Python String à un dict

Python String à un dict

Les chaînes sont utilisées pour envoyer / communiquer des données sur le réseau, mais lorsque cette chaîne est reçue par un programme, elle doit être convertie en un type de données qui prend en charge les manipulations plus rapides. Dans Python, il existe des dictionnaires qui permettent à l'utilisateur de stocker des données sous forme de paires ou de valeurs de paire de clés. Ceux-ci sont très similaires à JSON, et dans cet article, vous allez apprendre à convertir une chaîne python en un dictionnaire.

Le contenu de ce guide est le suivant:

  • Méthode 1: Utilisation du JSON.Méthode charge () pour convertir la corde en dict
  • Méthode 2: Utilisation de l'AST.Méthode littéral_eval () pour convertir la corde en dict
  • Méthode 3: Utilisation de Strip () et Split () dans les expressions du générateur

Commençons par la première méthode tout de suite.

Méthode 1: Utilisation du JSON.Méthode charge () pour convertir la corde en dict

La méthode Loads () est utilisée pour «charger» une chaîne JSON et la convertir en JSON, ou à Python, un dictionnaire. Cependant, pour que cette méthode fonctionne, la chaîne doit être dans le format spécifique dans lequel chaque «clé» est encapsulée par des guillemets, séparés par un côlon de la «valeur». Et chaque paire est séparée par une virgule.

Pour démontrer le fonctionnement de la méthode Loads () pour la conversion de chaîne à dictionnaire, utilisez l'extrait de code suivant:

Importer JSON
Stringvar = '"Name": "John Doe", "Age": "20", "Occupation": "Doctor"'
ResultVar = JSON.Loads (StringVar)
print ("String initial:", stringvar)
Print ("After Conversion:", ResultVar)
print ("Type après conversion:", type (résultatvar))

Dans cet extrait de code:

  • Le module «JSON» est importé afin que l'utilisateur puisse utiliser la méthode Loads ().
  • Après cela, la chaîne «Stringvar» est initialisée
  • La méthode Loads () est appliquée sur le stringvar et le résultat est stocké dans la variable «ResultVar»
  • Enfin, la chaîne d'origine, le résultat et le type du résultat sont imprimés sur le terminal.

Lorsque ce code est exécuté, il produit le résultat suivant sur le terminal:

Dans cette sortie, vous pouvez facilement remarquer que la chaîne a été convertie avec succès en un type de données dict dans Python.

Méthode 2: Utilisation de l'AST.Méthode littéral_eval () pour convertir la corde en dict

La méthode littéral_eval () du package «AST» peut également être utilisée pour faire exactement le même travail que la méthode Loads () du package «JSON». Pour utiliser cette méthode, jetez un œil au code suivant:

Importer AST
StringVar = '"Name": "John Doe", "Age": 20, "Occupation": "Doctor", "Salaire": 40000'
ResultVar = AST.littéral_eval (stringvar)
print ("String initial:", stringvar)
Print ("After Conversion:", ResultVar)
print ("Type après conversion:", type (résultatvar))

Lorsque ce code sera exécuté, il produira le résultat suivant sur le terminal:

La sortie vérifie que la chaîne a été convertie avec succès en un dict python.

Méthode 3: Utilisation de la méthode eval () pour convertir la corde en dict

Une autre méthode très similaire est la méthode eval () qui est utilisée pour évaluer si une chaîne est correctement formatée ou non et renvoie le dictionnaire converti à l'appelant. Pour voir son fonctionnement, prenez l'exemple de code suivant:

StringVar = '"Name": "John Doe", "Age": 20, "Occupation": "Doctor", "Salaire": 40000'
resultVar = eval (stringvar)
Imprimer ("Utilisation de la méthode eval ()")
print ("String initial:", stringvar)
Print ("After Conversion:", ResultVar)
print ("Type après conversion:", type (résultatvar))

Lorsque ce code est exécuté, il produira la sortie suivante sur le terminal:

Vous avez réussi à convertir une chaîne Python en un dict python en utilisant la méthode eval ().

Méthode 4: Utilisation de Strip () et Split () dans les expressions du générateur

Supposons que la chaîne ne soit pas au format JSON String, et que vous voulez toujours la convertir en un dict Python. À cette fin, vous devrez utiliser diverses méthodes de manipulation de chaînes comme Strip () et Split (). Par exemple, supposons que la chaîne contient des paires de valeurs de clé, dans lesquelles la clé et la valeur sont séparées par un trait d'union "-», Et chaque paire est séparée par une virgule. Par exemple, c'est la chaîne à convertir:

StringVar = "Name - John Doe, âge - 20, Occupation - Doctor, Martial_Status - Single"

Pour ce faire, l'utilisateur peut utiliser l'expression du générateur, jetez un œil au code suivant:

StringVar = "Name - John Doe, âge - 20, Occupation - Doctor, Martial_Status - Single"
résultatvar = dict ((a.strip (), b.bande())
pour a, b dans (section.diviser("-")
pour la section dans Stringvar.diviser(",")))
print ("String initial:", stringvar)
Print ("AfterConversion:", ResultVar)
print ("Type après conversion:", type (résultatvar))

Pour comprendre ce code, commencez à partir de la boucle la plus intérieure:

  • La chaîne est fendue à chaque occurrence d'une virgule pour obtenir des paires de clés individuelles
  • Pour chaque sous-chaîne de paires de clés, la chaîne est divisée lors de la survenue d'un trait d'union "-»Et les deux sections sont attribuées aux variables« A »et« B ». Le «A» détient la partie clé, tandis que le «B» détient la partie de valeur.
  • La méthode Strip () est appliquée sur les deux variables «A» et «B» pour supprimer tous les espaces vides avant ou après la chaîne.
  • Après cela, ces deux variables sont transmises dans la méthode Dict () pour créer une nouvelle variable de dictionnaire, «ResultVar»
  • Enfin, imprimez la chaîne d'origine et la variable convertie ResultVar et son type sur le terminal à l'aide de la méthode d'impression ()

Lorsque ce code est exécuté, il produit la sortie suivante:

On peut facilement observer que la chaîne a été convertie en un dict python.

Conclusion

Pour convertir une chaîne en un «dict» python, l'utilisateur peut utiliser la méthode Loads () du package «JSON» ou la méthode littéral_eval () du package «AST». Cependant, pour utiliser ces deux méthodes, la chaîne doit être une chaîne JSON. En dehors de cela, si la chaîne est dans un format différent, l'utilisateur devra utiliser une combinaison de diverses méthodes de manipulation de chaîne pour trouver une expression de générateur de travail.