使用 python 2 在 azure devops workitem 中上传 CSV 文件

Uploading a CSV file in azure devops workitem using python 2

我正在尝试将 csv 文件上传到 Azure Devops 工作项。在上传附件步骤时调用 rest api,我遇到了一个问题: POSThttps://dev.azure.com/{organization}/{project}/_apis/wit/attachments?api-version=5.1

我的代码如下:

with open('details.csv', 'r') as f:
    details = f.read()
print(details)  #Printing the CSV file as expected

ado_req_headers_ATT = {'Content-Type':'application/octet-stream'}
ADO_SEC_ATTA_URL = 'https://dev.azure.com/orgname/projectname/_apis/wit/attachments?fileName=details.csv&api-version=5.1-preview.3'
ado_req_attach_File = requests.post(url=ADO_SEC_ATTA_URL,headers=ado_req_headers_ATT,data=details, auth=('',ADO_AUTH_PAT))
print(ado_req_attach_File.text)

当我在本地 visual studio 代码中使用 python 3.8 时,相同的代码可以工作,但当我使用 Azure Automation Runbook (python 2.7) 时,相同的代码不工作。

当我尝试打印响应正文的文本时,出现以下错误:

print(ado_req_attach_File.text)UnicodeEncodeError: 'ascii' 编解码器无法对位置 6303 中的字符 u'\u221e' 进行编码:序号不在范围内 (128)

预期输出:

{"id":"facedff6-48c6-5479-894b-f7807f29b96e","url":"https://dev.azure.com/orgname/d93740f8-fe37-5433-bc8e-79c0a320d81b/_apis/wit/attachments/facedff6-48c6-5479-894b-f7807f29b96e?fileName=details.csv"}

这似乎与 Azure DevOps 方面无关,因为您的 API 工作正常。你已经得到 JSON 响应成功。

2.7版本默认不设置编码。

请使用下面的代码作为程序的第一行并检查它是否有效:

# -*- coding: utf-8 -*-

# Your code goes below this line

对于python 3.x,默认encoding.hence不会有编码问题。

另请查看此处的类似问题以获取更多信息: