You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典转JSON提交Kinesis遇类型错误求解决

解决Python推送Kinesis流的JSON记录失败问题

问题出在put_records接口的Records参数格式要求上,你之前的调用都不符合Kinesis的参数规范:

错误原因

  • put_records要求Records必须是列表或元组,而非单个字符串或字典
  • 列表中的每个元素必须是包含Data和PartitionKey的字典结构,这两个字段是必填项

正确实现代码

import json
# 你的字典对象
o = {'Name':'John Doe'}

# 构造符合要求的Records列表
records = [
    {
        'Data': json.dumps(o).encode('utf-8'),  # 将字典转为JSON字符串后编码为bytes
        'PartitionKey': 'user-123'  # 根据业务逻辑设置分区键,不可省略
    }
]

# 调用Kinesis接口
response = kinesis_client.put_records(
    StreamName='kinesis_test_stream',
    Records=records
)

# 可选:检查推送结果
if response['FailedRecordCount'] > 0:
    print("部分记录推送失败,需处理重试")

关键细节说明

  • Data字段必须是bytes类型:Kinesis要求数据以二进制形式传输,所以需要将JSON字符串通过encode('utf-8')转为bytes
  • PartitionKey是必填项:用于Kinesis确定将记录发送到哪个分片,可根据业务维度(如用户ID、地区等)设置
  • 即使只推送单条记录,也要放在列表中:put_records是批量写入接口,列表是强制格式

内容的提问来源于stack exchange,提问作者Blav Orian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 07:45:39