Не беспокойтесь :) добро пожаловать на Python! Это бросает эту ошибку, потому что она ищет глобальную переменную, которой не существует, и причина, по которой она не существует, заключается в том, что вы не попадаете в состояние if type == "accounts"
!
попробовать это:
for i in included:
global signs,accounts, regions
global sign_name, acc_name, rg_name
regions = "no region yet"
acc_name = "no acc_name yet"
if type == "regions"
regions = i
rg_name = regions['data']['region']
if type == "accounts"
accounts = i
acc_name = accounts['data']['account']
print("Stopping account " + acc_name + " in region " + rg_name)
Это очистит ошибку и, по крайней мере позволит вам увидеть, что другие ошибки могут появляться :)
Я также отметить, как я уверен, вы услышите от других, нет причин для вас объявлять глобальные переменные в этом контексте. Первоначально было сказано, что «не удается найти глобальную переменную», потому что прежде чем вы вставляете в ключевые слова global
, она не запускалась в операторе if
, и поэтому сначала он проверил переменные locals()
и не нашел их, искал переменные globals()
, и не находил его ногами и ошибкой.
Вы можете удалить global
переменные, и он будет работать нормально, как так:
for i in included:
regions = "no region yet"
acc_name = "no acc_name yet"
if type == "regions"
regions = i
rg_name = regions['data']['region']
if type == "accounts"
accounts = i
acc_name = accounts['data']['account']
print("Stopping account " + acc_name + " in region " + rg_name)
Другое быстрое примечание, никогда type
в качестве переменной ... использовать type_
вместо этого. Причина в том, что type
- это функция Python , и если вы используете type
в качестве переменной, вы случайно накладываете имя встроенного имени.
Наконец, просто чтобы очистить сценарий немного больше:
# only use "i" when you're using numbers, otherwise just call it
# the name of the data you're using :)
for account_data in included:
regions = "no region yet"
acc_name = "no acc_name yet"
if type_ == "regions"
rg_name = account_data['data']['region']
if type_ == "accounts"
acc_name = account_data['data']['account']
# here's an example of Pythonic string formatting :)
print("Stopping account {} in region {}".format(acc_name, rg_name))
сделал любой из этих ответов на ваш вопрос? –
Да, это так. Спасибо! – user1725651