Перебор значений словаря для формирования URL - PullRequest
1 голос
/ 21 марта 2020

Я пытаюсь перебрать значения в словаре ниже, чтобы добавить каждое значение для формирования уникального URL (здесь используется Python 2):

base_url = 'https://www.edimark.fr/resultat-recherche/magazine/'
magazine = {
    'La Lettre du Cancerologue': '14',
    'La Lettre du Pharmacologue': '10',
    "La Lettre de l'Hepato gastroenterologue": '4',
    "La Lettre de l'Infectiologue": '2'
    }

Когда я перебираю значения itervalue , он последовательно добавляет каждый номер к предыдущему номеру. Код и вывод ниже:

for itervalue in magazine.itervalues:
    base_url = base_url + itervalue
    print base_url

https://www.edimark.fr/resultat-recherche/magazine/4
https://www.edimark.fr/resultat-recherche/magazine/410
https://www.edimark.fr/resultat-recherche/magazine/4102
https://www.edimark.fr/resultat-recherche/magazine/410214

Принимая во внимание, что предполагаемый вывод достигается, когда я не сохраняю результат в переменную ...

for itervalue in magazine.itervalues:
    base_url + itervalue

'https://www.edimark.fr/resultat-recherche/magazine/4'
'https://www.edimark.fr/resultat-recherche/magazine/10'
'https://www.edimark.fr/resultat-recherche/magazine/2'
'https://www.edimark.fr/resultat-recherche/magazine/14'

Может кто-нибудь, пожалуйста, дайте мне знать, что я я здесь не так делаю? Довольно плохо знаком с Python, поэтому любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 21 марта 2020
     base_url = base_url + itervalue  

Это накопительно. Вы должны назначить новый URL другой переменной, например:

      url = base_url + itervalue
0 голосов
/ 21 марта 2020

вы можете использовать:

for itervalue in magazine.itervalues:
    aux_base_url = aux_base_url + itervalue
    print aux_base_url

вы меняете значение для base_url на каждой итерации, добавляя к исходному base_url все значения из magazine.itervalues, чтобы исправить это, вы можете сохранить промежуточный результат во вспомогательной переменной aux_base_url

вспомогательная переменная имеет смысл, если вы хотите сделать больше, чем просто печатать, если вы хотите только печатать, удобнее использовать:

print base_url + itervalue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...