使用openapi-python-client生成客户端时反序列化Runtime Error问题咨询
问题分析与修复建议
问题根源
这是openapi-python-client生成代码的Bug。从报错栈能明确看到:生成的_parse_response方法错误地将原始JSON字符串(response.text)直接传入ClientGroupListModel.from_dict(),但该方法要求的入参是解析后的Python字典,而非字符串。当from_dict尝试把字符串转换为字典时,就触发了ValueError: dictionary update sequence element #0 has length 1; 2 is required错误。
临时修复方案
你可以手动修改生成的代码绕过该问题:
- 定位到
api/device_group/get_v_1_device_group_get_client_groups.py文件中的_parse_response函数 - 在调用
ClientGroupListModel.from_dict前,先解析JSON字符串:
import json # ... 保留原有代码 response_200 = ClientGroupListModel.from_dict(json.loads(response.text))
问题反馈渠道
该Bug需要提交给openapi-python-client项目维护者修复:
- 前往项目仓库提交Issue,明确描述以下信息:工具版本、OpenAPI文档中对应接口的定义、完整报错栈、服务端返回的JSON示例
- 附带生成代码中出错的片段,能帮助维护者更快定位问题
内容的提问来源于stack exchange,提问作者Hecatonchires
相关产品推荐
相关产品推荐

