9
votes

Obtenir le dictionnaire Python de la chaîne contenant des paires de la valeur de clé

J'ai une chaîne Python dans le format: xxx

existe-t-il un moyen de le convertir en dictionnaire qui ressemble à xxx

Lorsque chaque entrée est (clé, valeur) paires de chaîne. J'ai essayé de fractionnement de la chaîne à la liste par xxx

puis supprimant manuellement : , vérifiant chaque nom de balise, ajoutant à un dictionnaire. L'inconvénient de cette méthode est: cette méthode est méchante, je dois supprimer manuellement : pour chaque paire et s'il existe une "valeur" multi-word dans la chaîne (par exemple, bla bla pour Description ), chaque mot sera une entrée distincte dans une liste qui n'est pas souhaitable. Y a-t-il une manière pythonique d'obtenir le dictionnaire (en utilisant Python 2.7)?


4 commentaires

Vous ... supprimé la question précédente juste pour le demander à nouveau ...


Ouais .. il y avait des erreurs dans cette question


(Off-sujets, mais) Veuillez ne pas utiliser str comme nom de variable. C'est le nom du Type de chaîne intégrée .


@Shawnchin merci .. Je garderai ça à l'esprit ..


3 Réponses :


3
votes

sans re : xxx


0 commentaires

35
votes
\b           # Start at a word boundary
(\w+)        # Match and capture a single word (1+ alnum characters)
\s*:\s*      # Match a colon, optionally surrounded by whitespace
([^:]*)      # Match any number of non-colon characters
(?=          # Make sure that we stop when the following can be matched:
 \s+\w+\s*:  #  the next dictionary key
|            # or
 $           #  the end of the string
)            # End of lookahead

0 commentaires

0
votes

Autre variation du programme aswini qui affiche le dictionnaire dans la commande originale xxx

sortie

[(nom "," srek "), (' Âge ',' 24 '), ("Description", "Blah Blah"), ("Cat", "Dog"), ("Stack",' Overflow ')]


0 commentaires