2010-12-09 11 views
1
str = 'This is first line \n 2 line start from her\ Service Name: test \n some 4 line \n User Name: amit \n some something \n Last Name: amit amit \n 

Fondamentalement Ce qui m'intéresse, c'est d'obtenir le nom du service et le nom d'utilisateur. Dois-je utiliser l'expression régulière pour ce faire. Je veux créer un dict commemeilleure façon d'extraire les valeurs de la chaîne

dict['service_name'] = 'test' 
dict['user_name'] = 'amit' 
dict['last_name'] = 'amit amit' 

Alors quelle est la meilleure façon de chercher et d'obtenir les valeurs.

Merci

Répondre

5

Vu:

str = 'This is first line \n 2 line start from her\nService Name: test \n some 4 line \nUser Name: amit \n some something \nLast Name: amit amit \n' 

Le code suivant:

dict([line.split(':') for line in str.split('\n') if ':' in line]) 

produit:

{'Last Name': ' amit amit ', 'Service Name': ' test ', 'User Name': ' amit '} 

Vous pouvez modifier split(':')-split(':', 1) pour éviter les problèmes avec le bouton droit sur côlons côtés de la main. En outre, vous pouvez saupoudrer quelques appels à strip si les espaces sont un problème.

+0

Ajouter un strip() s et vous êtes là IMO. –

0

Il est pas très elegnat, mais vous pouvez exploser() la chaîne dans un tableau en utilisant « Nom du service: » comme séparateur.

+1

Mon erreur, en pensant que les noms de fonctions PHP ne sont pas en Python, vous avez besoin de split ne pas exploser. –

Questions connexes