0

我正在编写代码,并以以下形式获取数据:

k=[{'item_id': '43381702', 'length': {'_exp': -2, '_is_special': False, '_int': '0', '_sign': 0}, 'height': {'_exp': -2, '_is_special': False, '_int': '0', '_sign': 0}, 'width': {'_exp': -2, '_is_special': False, '_int': '0', '_sign': 0}, 'unitweight': {'_exp': -3, '_is_special': False, '_int': '3000', '_sign': 0}, 'quantity': 1}]

并且预计当我写

float(k[0]['unitweight'])

它应该被转换成一个浮点数。但它正在给予

TypeError: float() 参数必须是字符串或数字

正如预期的那样。我很困惑,因为数据的形式与 python 十进制模块中实现的形式相同。有什么方法(单线)可以转换 float 中的数据吗?

这个链接可能有同样的问题。看看这个也。

4

1 回答 1

2

采取这个:

d = {'_exp': -3, '_is_special': False, '_int': '3000', '_sign': 0}

为了:

k[0]['unitweight']

你可以这样做:

import math  
math.copysign(int(d['_int']) ** d['_exp'], d['_sign'] * -1)

结果:

3.7037037037037036e-11

不知道什么'_is_special'意思。

于 2013-05-31T06:33:37.153 回答