2016-07-19 7 views
0

ich eine URL haben url wie folgt:Python hinzufügen

http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01 

Ich brauche einen Knoten einfügen 'uns' in diesem Fall wie folgt:

http://www.example.com/boards/results/us/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01 

urlparse Bibliothek mit Python, ich kann auf den Weg zu bekommen, wie folgt:

path = urlparse(url).path 

... und dann eine komplizierte und hässliche Routine mit denen Sie den Pfad basierend Aufteilung auf Schrägstriche und Einfügen des neuen Knotens und dann die Rekonstruktion der URL

>>> path = urlparse(url).path 
>>> path.split('/') 
['', 'boards', 'results', 'current:entry1,current:entry2', 'modular', 'table', 'alltables', 'alltables', 'alltables', '2011-01-01'] 
>>> ps = path.split('/') 
>>> ps.insert(4, 'us') 
>>> '/'.join(ps) 
'/boards/results/current:entry1,current:entry2/us/modular/table/alltables/alltables/alltables/2011-01-01' 
>>> 

Gibt es eine elegantere/pythonic Art und Weise diese Standardbibliotheken zu erreichen?

EDIT: Die 'Ergebnisse' in der URL ist nicht festgelegt - es kann 'Ergebnisse' oder 'Produkte' oder 'Preise' und so weiter sein. Es wird jedoch immer nach "Boards" sein.

+0

'url.replace ('Ergebnisse /', 'Ergebnisse/us /')'? –

Antwort

0
path = "http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01" 
replace_start_word = 'results' 
replace_word_length = len(replace_start_word) 
replace_index = path.find(replace_start_word) 
new_url = '%s/us%s' % (path[:replace_index + replace_word_length], path[replace_index + replace_word_length:]) 
Verwandte Themen