Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不更改字节的情况下将字符串转换为浮点?_Python_Python 2.7 - Fatal编程技术网

Python 如何在不更改字节的情况下将字符串转换为浮点?

Python 如何在不更改字节的情况下将字符串转换为浮点?,python,python-2.7,Python,Python 2.7,通过卡夫卡发送并存储在S3上时,我的数据编码不正确 它是使用Debezium MySQL连接器以十进制形式插入Kafka的,该连接器遵循以下规则: 创建的Avro模式的相关部分如下所示: { "name": "PRICE_SELLING", "type": [ "null", { "type": "bytes", "scale": 2, "precision": 64, "connect.version": 1,

通过卡夫卡发送并存储在S3上时,我的数据编码不正确

它是使用Debezium MySQL连接器以十进制形式插入Kafka的,该连接器遵循以下规则:

创建的Avro模式的相关部分如下所示:

{
  "name": "PRICE_SELLING",
  "type": [
    "null",
    {
      "type": "bytes",
      "scale": 2,
      "precision": 64,
      "connect.version": 1,
      "connect.parameters": {
        "scale": "2"
      },
      "connect.name": "org.apache.kafka.connect.data.Decimal",
      "logicalType": "decimal"
    }
  ],
  "default": null
}
问题是,当我从主题中读取数据并写入S3时,它以字符串的形式在S3中结束。根据我的直觉,字节是正确的,但它不应该表示为字符串,而应该表示为浮点

示例:

  • “JiU8”应该是24999.00
  • “JiDw”应为24988.00
  • “RxFc”应为46575.00
  • “LyZQ”应为30900.00
我尝试过使用struct和ord,但似乎找不到正确的组合将其转换回float形式

以下是我的一些尝试:

结构解包('f','JiU8'); (5.088121542939916e-05,) >>>解包结构('>f','JiU8'); (3822926.0,)
我有一个Apache Spark作业(Python 2.7)从S3读取数据并将数据移动到OLAP数据库中,因此我希望在插入数据库之前用Python解决数据问题。

可以将连接器的decimal.handling.mode设置为string(请参阅)这可能有助于您更容易在接收器端使用这些值。

请回答您的问题,并展示您使用
struct
模块编写的代码。您是否考虑过十进制模块?它是一种精确的浮动的替代品。这些浮动成为这些可打印字符的可能性非常低。。。因此,这些字符串可能是以某种方式编码的——知道它们是如何编码的吗?@martineau我已经添加了一些尝试。@AChampion我想你发现了什么……我发布了我用来插入卡夫卡的工具的文档。