【问题标题】:Google Appengine Long to IntGoogle Appengine Long to Int
【发布时间】:2015-06-07 10:52:55
【问题描述】:

当我输入变量a时

a = int(1388620800)*1000

(当然)这个变量被返回

1388620800000

但是在Google Appengine Server中,这个变量被https://cloud.google.com/appengine/docs/python/datastore/typesandpropertyclasses#int改变了

1388620800000L

Appengine中如何将1388620800000L转换为int类型?

编辑

我将为 JSON 打印这个数字。在本地 Python2.7 中,变量 'a' 只是整数。但在 appengine 服务器中,变量“a”具有字符串“L”。我使用 str() 和 .replace('L','') 解决了它,但我想知道如何通过更改数字类型来解决它。

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    这不是 App Engine 问题。

    在 Python 中,long 和 int 完全等价,您没有理由需要从一个转换为另一个。

    编辑

    不幸的是,您的解释也没有意义。 JSON 没有 long 类型,Python json 库不区分 long 和 ints:

    >>> json.dumps(1388620800000L)
    '1388620800000'
    >>> json.dumps(1388620800000)
    '1388620800000'
    

    如您所见,它们的处理方式完全相同。

    【讨论】:

    • 这是 App Engine 问题。当你输入变量 a = int(1388620800)*1000 时,a 在 python2.7 中是 int。但是在appengine服务器中,a是Long类型。
    • 但是没有区别。你为什么在乎?为什么你认为你需要转换它?
    • 对不起,我的解释很弱。我编辑了我的问题。
    【解决方案2】:

    App Engine使用python 2.7,这个版本统一了int和long。

    有关更多信息,请参阅此问题: How does Python manage int and long?

    我真的不明白你为什么要转换这个数字,而我认为你没有理由这样做。

    【讨论】:

    • 当我打印这个号码时,他们有 L 字符串。所以我想使用 int 类型删除它。
    猜你喜欢
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多