【问题标题】:python - 'utf-8' codec can't decode bytes in position 0-2: invalid continuation bytepython - \'utf-8\' 编解码器无法解码位置 0-2 中的字节:无效的连续字节
【发布时间】:2023-01-30 01:53:12
【问题描述】:

我正在尝试使用 aws lambda 从 aws 运动数据流解码以下内容,但我不断收到“'utf-8'** 编解码器无法解码位置 0-2 中的字节:无效连续字节”错误

x = b'\xf3\x89\x9a\xc2\n$dad568a5-6305-481c-b6f1-f8338cc127df\n$3d57f33a-d681-467b-bb82-89c0d77e2621\n$3ade7757-3df4-41ec-bdc8-52ca427449 $a0a59a4e-02f5-462d-8c3e-50030145cf17\x1a\x83\x01\x08\x00\x1a\x7f{ "window_start": "2022-12-30 13:25:00","window_end": "2022-12 -30 13:35:00","player_id": 2004,"bonus_stake": 2.76,"bonus_win": 4}\x1a\x86\x01\x08\x01\x1a\x81\x01{"window_start": "2022 -12-30 13:25:00","window_end": "2022-12-30 13:35:00","player_id": 2304,"bonus_stake": 2.2,"bonus_win": 2.21}\x1a\x87 \x01\x08\x02\x1a\x82\x01{"window_start": "2022-12-30 13:25:00","window_end": "2022-12-30 13:35:00","player_id" : 2290,"bonus_stake": 11.1,"bonus_win": 38.7}\x1a\x86\x01\x08\x03\x1a\x81\x01{"window_start": "2022-12-30 13:25:00"," window_end": "2022-12-30 13:35:00","player_id": 2192,"bonus_stake": 1.32,"bonus_win": 0.6}\x10\xa6\x1a\tB\xa5\x9b\x14\xa5 ?\xad\xcd\x8b\xe8^\xcb'

s = x.decode()

印刷)

【问题讨论】:

  • 有没有办法去除所有数据并将数据保留在大括号内,包括大括号?
  • 那个字符串是从哪里来的? chardet 认为它是 cp1254 编码的土耳其语,但这也不正确。
  • 我正在使用 AWS 工作室笔记本填充运动数据流 CREATE TABLE temp(window_starttimestamp(3),window_endtimestamp(3),player_idbigint,bonus_stakedecimal(19,8),@987654326 @ decimal(19,8) ) WITH ( 'connector' = 'kinesis', 'stream' = 'XXXX', 'aws.region' = 'XXXXXX', 'scan.stream.initpos' = 'LATEST', 'format ' = 'json')

标签: python amazon-kinesis


【解决方案1】:

来自输出流的原始数据解码失败的原因是因为在写入 Kinesis 流时默认启用聚合。您可以在桌子上设置以下内容

'sink.producer.aggregation-enabled' = 'false'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 2023-04-02
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    相关资源
    最近更新 更多