2012-01-17 13 views
15

Próbuję pisać rzeczy w sposób python, ale nie wiem, jak to naprawić. W poniższym kodzie chcę przeczytać obj.subject i umieścić go w temacie var, również przeczytać obj.body i umieścić go w treści. Najpierw chcę odczytać zmienne kwargs i wyszukać słowa kluczowe w ciągu znaków, aby je zastąpić, jeśli żaden nie istnieje, to przejdź dalej.pętla przez kwargs w pytonie

Czy ktoś może mi pomóc?

for key in kwargs: 
     subject = str(obj.subject).replace('[%s]' % upper(key), kwargs[key]) 


    for key in kwargs: 
     body = str(obj.body ).replace('[%s]' % upper(key), kwargs[key]) 

    return (subject, body, obj.is_html) 
+2

Czy można wyświetlić przykładowe wejście ("obj.subject' i" obj.body', a także 'kwargs') i pożądany wynik? Bez tego trudno powiedzieć, o co pytasz. – dcrosta

Odpowiedz

17

myślę szukasz czegoś takiego:

subject = obj.subject 
body = obj.body 
for key, value in kwargs.iteritems(): 
    subject = subject.replace('[%s]' % key.toupper(), value) 
    body = body.replace('[%s]' % key.toupper(), value) 

return (subject, body, obj.is_html) 
18

Tylko szybka uwaga dla tych aktualizacji do Pythona 3.

W Pythonie 3 jest prawie taka sama:

subject = obj.subject 
body = obj.body 
for key, value in kwargs.items(): 
    subject = subject.replace('[{0}]'.format(key.toupper()), value) 
    body = body.replace('[{0}]'.format(key.toupper()), value) 

return (subject, body, obj.is_html) 

Uwaga: iteritems() staje się jako dict nie ma już metody iteritems.

+0

Nowość w Pythonie i nauka v3 ... ta notatka była BARDZO pomocna. – Beege