【问题标题】:I am getting 'ZZ' as country code when using pytz使用 pytz 时,我将“ZZ”作为国家/地区代码
【发布时间】:2014-01-25 06:33:24
【问题描述】:

我正在使用 App 引擎,并且正在尝试从请求中获取时区。 但是,当在本地主机上时,它似乎总是返回“ZZ”作为国家代码,这不是 pytz 库中的国家/地区。

这段代码:

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

产生这个错误:

返回 self.data[key.upper()]
键错误:'ZZ'

非常感谢您的帮助

【问题讨论】:

    标签: google-app-engine python-2.7 pytz


    【解决方案1】:

    “ZZ”常用于表示“未知或未指定的国家”

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

    【讨论】:

    • 谢谢,您知道您是否有可能将 ZZ 投入生产?
    • 当你这样做时,我至少会准备好抓住这些案例。我使用过 AdMob 等其他服务,其中“ZZ”案例的数量远远高于我的预期。
    • 我在生产中得到“ZZ”和“unknown”。
    • "ZZ" 在 Unicode 的 cldr-data 中被引入,作为国家代码出现在别处时的“通配符”。例如,如果您想在可能的子标签中使用默认语言环境 cldr.unicode.org,您会发现像“abt-Latn-ZZ”这样的值,其中 ZZ 表示该语言的所有国家 + scriptDesignator ...
    【解决方案2】:

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

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

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

    【讨论】:

    • “字段名不区分大小写。”
    猜你喜欢
    • 2012-10-12
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多