首页 > 解决方案 > (Python) 在字符串中添加负数

问题描述

我为自己在学习 python 时不必问任何问题而感到非常自豪。但是,我似乎无法弄清楚这一点。

我正在尝试附加从 json.dump 获取的数据,保留它直到满足循环,然后添加所有附加的数字。

下面是我的一段代码(你可以取笑我,我敢肯定这很可怕)。目的是:如果文本等于响应文本,则解析json字典并输入一个级别。一旦进入“orderFillTransaction”级别,获取“pl”的值并追加。

if 'orderFillTransaction' in json_data:
    print("Json_Data:", type(json_data))
    Closed_ID2 = json_data['orderFillTransaction']
    PL_List = (Closed_ID2['pl'])
    print("PL_List:", PL_List, type(PL_List))
    PL.append(PL_List)
    print("PL.append:", PL, type(PL))

下面是输出:

Json_Data: <class 'dict'>
PL_List: -0.1300 <class 'str'>
PL.append: ['-0.1300', '-0.1300'] <class 'list'>

问题是,如果我尝试 sum(),它会出错,如果我 float(),我会得到一些奇怪的数字;我似乎无法弄清楚如何将每个项目添加在一起。如果重要的话,这些数字通常是负数。

我经常会收到以下错误:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

或者

ValueError: invalid literal for int () with base 10

我知道它与列表中的 str 而不是 int 有关,但是,我知道必须有一些解决方案。

任何方向将不胜感激。谢谢!

标签: pythonjsondictionary

解决方案


尝试:

>>> PL = ['-0.1300', '-0.1300']
>>> print(sum([float(i) for i in  PL]))

输出:

-0.26

我不知道你使用了哪些“奇怪”的数字,float但上面的代码对我有用。


推荐阅读