令牌身份验证失败:“utf-8”编解码器无法解码位置 0 中的字节 0xe4:无效的继续字节

Posted

技术标签:

【中文标题】令牌身份验证失败:“utf-8”编解码器无法解码位置 0 中的字节 0xe4:无效的继续字节【英文标题】:Token authentication failed: 'utf-8' codec can't decode byte 0xe4 in position 0: invalid continuation byte 【发布时间】:2022-01-23 21:11:36 【问题描述】:

我正在尝试将 json 数据从 azure ml 发送到 eventthub

import json
d = result.to_dict(orient='records')
data = json.dumps(d,ensure_ascii=False)

这是变量data-output的输出截图

import asyncio
from azure.eventhub.aio import EventHubProducerClient
from azure.eventhub import EventData
import time
conn_sting = "Endpoint=***"
async def run():
producer = EventHubProducerClient.from_connection_string(conn_str=conn_string)
async with producer:
    # Create a batch.
    event_data_batch = await producer.create_batch(partition_id='0')
    event_data_batch.add(EventData(data))

    # Send the batch of events to the event hub.
    await producer.send_batch(event_data_batch)
    
nest_asyncio.apply()
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
print("sent to eventhub")

并得到以下错误..

Token authentication failed: 'utf-8' codec can't decode byte 0xe4 in 
position 0: invalid continuation byte
Token authentication failed: 'utf-8' codec can't decode byte 0xe4 in 
position 0: invalid continuation byte

任何人都可以帮助调试错误? 谢谢

【问题讨论】:

【参考方案1】:

异常是由你的数据字典的内容引起的,至少有一个键或值不是UTF-8编码的。

您可以尝试使用其他编码类型,例如 "ISO-8859-1""unicode_escape"

您可以参考这些 SO 线程以获得更好的理解。

'utf8' codec can't decode byte 0xe4 ...: invalid continuation byte in timezone

"for line in..." results in UnicodeDecodeError: 'utf-8' codec can't decode byte

【讨论】:

以上是关于令牌身份验证失败:“utf-8”编解码器无法解码位置 0 中的字节 0xe4:无效的继续字节的主要内容,如果未能解决你的问题,请参考以下文章

创建 smtp() 时出现 Python smtplib 错误:“utf-8”编解码器无法解码字节

UnicodeDecodeError:“utf-8”编解码器无法解码位置 0 的字节 0xff

UnicodeDecodeError:“utf-8”编解码器无法解码位置 34 中的字节 0x85:无效的起始字节

UnicodeDecodeError:“utf-8”编解码器无法解码位置 35 中的字节 0x96:无效的起始字节

UnicodeDecodeError:“utf-8”编解码器无法解码位置 1023 中的字节 0xe2:数据意外结束

json.loads 错误:“utf-8”编解码器无法解码位置 0 的字节 0x83:无效的起始字节