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:
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:
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:
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.