首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对WIQL JSON进行编码?

如何对WIQL JSON进行编码?
EN

Stack Overflow用户
提问于 2020-04-20 04:25:28
回答 1查看 131关注 0票数 0

在邮递员中,我可以向我们的Azure DevOps 2019服务器提交一个查询,没有问题:

代码语言:javascript
复制
POST https://<AZDOSERVER>/<COLLECTION>/<PROJECT>/<TEAM>/_apis/wit/wiql?api-version=5.0
{"query": "Select [System.Id] From WorkItems WHERE [System.AreaPath] UNDER '<AREANAME>'"}

但是当我在Python中使用AREANAME时,它似乎遇到了单引号的编码问题。下面是我的代码:

代码语言:javascript
复制
url = "https://<AZDOSERVER>/<COLLECTION>/<PROJECT>/<TEAM>/_apis/wit/wiql?api-version=5.0"
json = '{"query": "Select [System.Id] From WorkItems WHERE [System.AreaPath] UNDER ' 
    + "'<AREANAME>'" + '" }'
headers = {'Accept': 'application/json; api-version=5.0'}
response = request.post(url, json=json, auth=self.basicauth, headers=headers)

我得到一个400错误,并显示以下消息:

代码语言:javascript
复制
b'{"count":1,"value":{"Message":"Error converting value \\"{\\"query\\": 
\\"Select [System.Id] From WorkItems WHERE [System.AreaPath] UNDER \'<AREANAME>\'\\" }\\" 
to type \'Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.Wiql\'. Path \'\', 
line 1, position 92.\\r\\n"}}'

我应该如何正确地将JSON传入python request.post()方法,以便以正确的编码发送它?我尝试通过Fiddler捕获我的出站请求,但它看不到python流量。我也在安装Wireshark,但这需要一段时间。我还逐步介绍了request.post方法,以尝试并理解它是如何构建请求主体的。当它覆盖到一个字节数组时,它似乎正确地处理了单引号。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-20 14:26:20

弄清楚了: request.post()接受json参数的字典对象,而不是json字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61311163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档