Я начинаю переменную глобально, тогда, когда я иду, чтобы изменить переменную, ее тип переходит из словаря (хорошего) в строку (плохо), и я уверен, почему, но не совсем. Я не на 100% занимаюсь просмотром python.переменное изменение типа от глобальной переменной до переменной метода почему?
Полный текст ниже, пожалуйста, обратите внимание, что у меня есть много заявлений печати, которые я использовал в качестве тестирования. Я включаю весь код в суть проблемы, чтобы дать вам полное представление о том, что я пытаюсь сделать.
totalEntries = 0
print 'this is first ' + str((type(totalEntries))) #prints type int (good)
perPage = 0
currentPage = 1
Pcity = ''
api_data = ''
is_last_page = False
apiCallNum = 1
tableDefined = False
def getApiData(city):
global Pcity
global apiCallNum
global apiEndpoint
Pcity = city
apiEndpoint = #just a link ignore this
api_data = requests.get(apiEndpoint).json()
print(api_data)
print('your testing this' + str(type(api_data))) #prints dict (good)
print ("Current API Call " + str(apiCallNum))
apiCallNum += 1
print('your testing this' + str(type(api_data))) #prints dict (good)
def populateVars():
global totalEntries
print "this is second " + str(type(totalEntries)) #prints int (good)
print('your testing this' + str(type(api_data))) #prints string (bad)
totalEntries = api_data['total_entries']
спасибо все
спасибо Кевин. Кроме того, то, что я сделал после расслабления на мгновение, было initalize api_data как пустой словарь. Когда я тестировал тип, последний тип теста выходил как дубликат. Теперь у меня есть новая проблема, которая отображается как totalEntries = api_data ['total_entries'] KeyError: 'total_entries' –
Я собираюсь попытаться выяснить, почему это так, в противном случае я обновлю этот вопрос. Кевин благодарит вас за помощь –
@ChristopherJakob. Если у вас есть новый вопрос - лучший план/способ, которым вы должны это сделать, - это отметить это решение и открыть новый с новой проблемой. –