python - (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 有关,但是,我知道必须有一些解决方案。
任何方向将不胜感激。谢谢!
解决方案
尝试:
>>> PL = ['-0.1300', '-0.1300']
>>> print(sum([float(i) for i in PL]))
输出:
-0.26
我不知道你使用了哪些“奇怪”的数字,float
但上面的代码对我有用。
推荐阅读
- swift - 子视图在情节提要上的大小计算错误
- scala.js - 创建和设置scala项目时出现问题
- rust - `bigdecimal::BigDecimal`,它没有实现 `Copy` 特征
- c - malloc() 如何比 free() 工作
- flutter - 如何获取 FlutterWindow 的 GLFW 窗口 ID
- opencv - 没有内在相机矩阵的反投影
- android - 使用 URI 从 GIF 上传到 Firebase 存储
- qt - 错误:QT 中的未知模块:qml quick
- java - NoSuchBeanDefinitionException:没有适用于 Weblogic (12.2.1.3.0) 的 [weblogic.messaging.saf.internal.SAFServerService] 类型的限定 bean
- docker - “docker pull redis”在下载时卡住了