如何在CSV中定义数组避免被解析为额外列?ADF部署报错求助
解决ADF部署CSV中JSON数组解析报错的问题
针对你遇到的CSV解析器误将JSON数组内的逗号识别为列分隔符、导致部署报错Missing type name after '['的问题,可通过以下几种方式解决:
确保数组值被双引号正确包裹并转义内部引号
保持整个JSON数组值在未转义的双引号内,同时将数组内部的双引号用反斜杠转义,这是CSV标准写法,ADF解析器默认会识别双引号包裹的内容为单个字段:trigger,tr_pipeline,pipelines.parameters.p_pbi_reports_to_refresh,"[{\"workspaceId\": \"workspaceId1\", \"datasetId\": \"datasetId1\"}, {\"workspaceId\": \"workspaceId2\", \"datasetId\": \"datasetId2\"}]"注意:确认ADF读取CSV时的
Quote Character参数设为双引号(默认配置),避免解析器忽略包裹规则。尝试用单引号包裹JSON数组(需确认工具支持)
若ADF部署工具支持单引号作为字段包裹符,可直接用单引号包裹数组,内部双引号无需转义,写法更简洁:trigger,tr_pipeline,pipelines.parameters.p_pbi_reports_to_refresh,'[{"workspaceId": "workspaceId1", "datasetId": "datasetId1"}, {"workspaceId": "workspaceId2", "datasetId": "datasetId2"}]'压缩JSON数组为无空格格式
去掉数组内的空格(不影响JSON有效性),可减少解析歧义,格式如下:trigger,tr_pipeline,pipelines.parameters.p_pbi_reports_to_refresh,"[{\"workspaceId\":\"workspaceId1\",\"datasetId\":\"datasetId1\"},{\"workspaceId\":\"workspaceId2\",\"datasetId\":\"datasetId2\"}]"检查CSV文件的编码与换行符
确保CSV以UTF-8编码保存,换行符使用LF(Unix格式),避免因编码问题导致解析器无法识别双引号包裹的字段。
内容的提问来源于stack exchange,提问作者Juma Hamdan
相关产品推荐
相关产品推荐

