PyCharm中Python读取CSV上传Azure Cosmos DB容器失败问题咨询
问题解答
方案可行性
该核心逻辑是可行的,读取CSV逐行写入Cosmos DB的思路没有问题,只需要修正代码细节即可正常运行。
常见运行失败原因
- 文件打开模式错误:你当前使用
'rb'二进制只读模式打开文件,同时指定了encoding="utf-8",且csv.DictReader仅支持接收文本模式的文件对象,二进制模式读取返回的bytes类型数据会直接导致解析失败。修正方式为将打开模式替换为'r'。 - 缺少Cosmos DB必填字段:所有写入Cosmos DB容器的条目必须包含
id字段(字符串类型),如果你的CSV文件中没有列名为id的字段,插入操作会直接报错。可在CSV中补充id列,或在代码中遍历行时手动为每个row添加id属性(比如按行号生成唯一值)。 - 数据类型不匹配:通过
DictReader读取的CSV所有字段值默认都是字符串类型,如果你的Cosmos DB容器预先定义了数值、布尔、日期等类型的字段,直接传入字符串会触发类型校验失败,需要提前把对应字段转换为匹配的数据类型。 - 容器初始化异常:需确认
container对象初始化时,传入的Cosmos DB连接字符串、数据库名、容器名均正确,且对应账号拥有该容器的读写权限。 - CSV文件本身异常:如果CSV文件实际编码不是UTF-8、存在表头缺失、特殊字符转义错误、空行等问题,也会导致读取解析失败,后续写入操作无法执行。
内容的提问来源于stack exchange,提问作者Maria Evans
相关产品推荐
相关产品推荐

