【问题标题】:How to handle a value being received as string or int in python?如何处理在python中作为字符串或int接收的值?
【发布时间】:2015-10-13 08:41:45
【问题描述】:

我的服务适用于 SOAP 和 REST。

当客户端使用 SOAP 连接到我的服务器时,我将他们的数字输入作为整数/浮点值,而如果他们将 REST 用于相同的输入,我将获得字符串值。到目前为止,我不得不使用双重解析:

str(int(input_value)) or str(float(input_value))

这不是一个好的解决方案。

在 Python 2/3.x 中有没有更好的方法来处理这个问题?

或者,有没有办法阻止 REST 数字输入作为字符串发送?

=== 更新 ===

对不起,我忘了提。我需要 input_value 作为数值,因为首先我需要对其应用一些数学运算。前任。 str(float(input_value) + 100)

【问题讨论】:

    标签: python rest parsing soap


    【解决方案1】:

    你的问题不清楚的是你为什么要使用

        str(int(input_value)) or str(float(input_value))
    

    如果你自己说需要浮点数,则转换为字符串。这可能只是问题的措辞。

    如果您需要将每个值作为 int/float 并计划稍后在其上使用数学。

    1. 我建议 float over int(除非您完全确定输入值)

    2. 一个简单的浮点转换就足够了。不管它来自哪里

      float(input_value)
      

    您的下游步骤会有一个浮动。

    【讨论】:

    • Input_value 可以是字符串或 int / float。如果它是字符串,我不能做数学,但我可以打印它。如果它是数字,我不能打印它,但我可以做数学。所以无论如何我都必须做前。 str(float(input_value)+100)
    • 在这种情况下,将所有转换为浮点数,并且仅在打印时转换为字符串。在此之前,这只是不必要的步骤。
    【解决方案2】:

    也许我没有正确理解,但如果你想解析每个数字(int 或 float)并使其成为字符串,你可以写:

    str(input_value)
    

    【讨论】:

    • 对不起,我忘了说我需要输入值是 int / float 所以我可以做 ex。 str(float(input_value) + 100)
    • str(input_value + 100),如果你有一个 int 或 float 它会工作
    • input_value 也可以是字符串
    • 好的,所以我认为最糟糕的方法是将所有内容都转换为 int 或 float
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    相关资源
    最近更新 更多