Пожалуйста, помогите мне, я застрял
def printdata(something):
for i in something + "_raw":
something + "_raw_names" = i.findAll("div",{"itemprop":"name"})
something + "_name" = something + "_raw_names"[0].text
print("Name: " + something + "_name")
Я хочу, чтобы printdata (body) делал это:
for i in bodies_raw:
bodies_raw_names = i.findAll("div",{"itemprop":"name"})
bodies_name = bodies_raw_names[0].text
print("Name: " + bodies_name)
Если у вас есть решение, пожалуйста, скажите мне, потому что я слишком долго борюсь с этим
Я не понимаю, что вам нужно - вы разделили две похожие функции. Что не так?
@doctorlove: OP пытается создать имя переменной, добавляя к нему строку, то есть bodies + "_raw", чтобы дать bodies_raw. Да, я знаю.
Если вы нашли решение своей проблемы, опубликуйте ответ на свой вопрос ниже, но не редактируйте исходное сообщение, удаляя исходный вопрос.






Вы не должны пытаться динамически создавать / получать доступ / изменять имена переменных. Если у вас много переменных с одинаковыми именами, подумайте о том, чтобы сохранить их в dict. например:
raws = {'bodies': bodies_raw, 'other': other_raw}
и тогда ваша функция может быть:
def printdata(something):
for i in raws[something]:
raw_names = i.findAll("div", {"itemprop": "name"})
raw_name = raw_names[0].text
print("Name: " + raw_name)
Это невозможно, как вы пытаетесь к этому подойти! Вы не можете изменить имя
variable'sво время выполнения. Я бы посоветовал вместо этого использовать словарь.