【发布时间】:2020-03-14 09:31:01
【问题描述】:
这是我的代码:
import time
import datetime
import pytz
print('--'*62)
cont = 0
print('MENU'.center(115))
print('--'*62)
my_timezones = {}
l = list() # MAIN LIST
l.append('0')
my_timezones['United Arab Emirates'] = pytz.country_timezones['AE']
my_timezones['Canada'] = pytz.country_timezones['CA'][20]
my_timezones['South Korea'] = pytz.country_timezones['KR']
my_timezones['United States'] = pytz.country_timezones['US'][17]
my_timezones['New Zeland'] = pytz.country_timezones['NZ'][0]
my_timezones['Norway'] = pytz.country_timezones['NO']
my_timezones['Ireland'] = pytz.country_timezones['IE']
my_timezones['Netherlands'] = pytz.country_timezones['NL']
my_timezones['Switzerland'] = pytz.country_timezones['CH']
l.append(my_timezones['United Arab Emirates'])
l.append(my_timezones['Canada'])
l.append(my_timezones['South Korea'])
l.append(my_timezones['United States'])
l.append(my_timezones['New Zeland'])
l.append(my_timezones['Norway'])
l.append(my_timezones['Ireland'])
l.append(my_timezones['Netherlands'])
l.append(my_timezones['Switzerland'])
print(l)
print('Cod Country Timezone')
for c in my_timezones.keys():
cont+=1
print(f'{cont}', end=' ')
print(f'{c}', end='')
print(f'{my_timezones[c]}'.center(45))
print('--'*62)
while True:
wich = int(input('Wich one? '))
if wich == 0:
break
else:
print(f'Local Time: {datetime.datetime.now()}')
print(f'UTC time: {datetime.datetime.utcnow()}')
try:
baby = l[wich]
timezone = pytz.timezone(baby) # THE LINE WHERE IS NOT WORKING
time = datetime.datetime.now(tz=timezone)
print(f'{l[wich]} time: {time}')
except IndexError:
print('SORRY! WE DIDN´T FIND IT!')
for c in l:
print(c)`` ``
然后我收到此错误: AttributeError: 'list' 对象没有属性 'upper'
我真的不知道如何解决它,因为我什至不知道问题的根源是什么,所以我需要你的帮助!
【问题讨论】:
-
您可能想要发布导致错误的代码。仅显示错误并不能帮助您解决问题;)
-
欢迎来到 StackOverflow。见minimal, reproducible example。在您发布 MRE 代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您指定的问题。
-
慢慢来帮助中心。但我猜你在
listobject 中调用了upper方法,而你打算在字符串对象中执行它。 -
这是实际的代码 sn-p 吗?我没有看到在任何地方调用的上层方法?请发布正确的代码 sn-p 和错误回溯消息
-
将
timezone = pytz.timezone(baby)更改为timezone = pytz.timezone(str(baby))(作为字符串传递)