我在使用pytz时将'ZZ'作为国家/地区代码

Ale*_*itt 5 google-app-engine pytz python-2.7

我正在使用App引擎,我正在尝试从请求中获取时区.但是,当在本地主机上时,似乎总是将"ZZ"作为国家代码返回,而该国家代码不是pytz库中的国家/地区.

这段代码:

country = self.request.headers['X-Appengine-Country']
logging.info(country)
tz = pytz.country_timezones(country)
Run Code Online (Sandbox Code Playgroud)

产生此错误:

return self.data[key.upper()]
KeyError: 'ZZ'
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助

Mac*_*ibe 8

'ZZ'通常用于表示'未知或未指定的国家'

还有两个字母代码的数字版本,计算为1070 + 30a + b,其中a和b是由A = 1,B = 2等转换的代码的两个字母.所以AA = 1101,AB = 1102,BA = 1131,ZZ = 1876.

  • “ZZ”在 Unicode 的 cldr-data 中被引入,作为国家代码出现在其他地方时的“通配符”。例如,如果您希望在可能的子标签中使用默认语言环境 http://cldr.unicode.org,您会发现诸如“abt-Latn-ZZ”之类的值,其中 ZZ 表示该语言的所有国家/地区 + scriptDesignator ... (2认同)

Rom*_*min 4

我建议您对请求标头名称使用正确的大小写。例如X-AppEngine-Country

但是,在本地开发环境中 - 我认为不会支持位置功能,即您将无法获得正确的值。这些应该仅适用于部署环境。该位置很可能由 Google 网络内部的 Google 服务提供,并且不会在本地开发环境中公开。

尝试将代码部署到实时环境并检查值。

  • *“字段名称不区分大小写。”* (2认同)