写一段python代码_我写了一段这样的 Python 代码,把自己坑惨了

文章目录

一、有问题的 Python 代码

二、代码执行结果

三、究竟哪里错了?

一、有问题的 Python 代码

prourl="http://xxx.code.xxx.xxx/api/"

mytoken="xxasasxxxdsdsaasxasasaxxx"

def Addissue(projectid, userid, description, title):

body = {

"description" : description,

"title": title,

"assignee_ids": userid

}

http_headers = {

'Accept': 'accept: */*',

'PRIVATETOKEN': mytoken

}

addurl = '%s/%s/issues' % (prourl, projectid)

ar = requests.post(addurl, body, headers=http_headers)

arj = ar.json()

print ar

print arj

return arj["id"]

if __name__ == "__main__":

projectid = "111"

title = "mytest"

description = "testtest"

userid = "111111"

issueid=Addissue(projectid, userid, description, title)

二、代码执行结果

先说结论,

上面这段代码的某个地方的写法是有问题的,

这个错误并不影响执行,也就是说代码逻辑执行完后,是能完成 “添加 issue” 的效果的。

但是,这段代码返回的内容比较诡异,

代码中,本来预期是会返回一个 id 的,但是实际并没有(代码中 print 出来 debug 了) :

{u’message’: u’unknown error’}

三、究竟哪里错了?

CSDN 的各位大佬们,

你们能看出来上面那段代码,哪里的写法有问题么?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

反正我是边看边测试折腾了一下午,搞得两眼昏花,愣是没找到问题在哪里。

而且也找身边的几位同学帮看了下,也是没看出来问题在哪里。

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

最后,在当晚,终于还是找到了问题点!

问题就是:

http_headers 里面的 Accept value 写错了…

各位朋友,你们找到这个问题了么? 花了多长时间找到的呢?

看起来显而易见的问题,

却找了大半天才发现,确实太不应该了.

为什么我一直没找到这个问题呢?

我反思了一下:

是因为我一直觉得 http_headers 不可能写出问题,所以前期压根就没有去检查它;

而是反复在 url ( 比如用 urllib.urlencode 格式化键值之类的) 和 requests.post 本身上找问题,

得出教训: 诡异难解的问题,通常会出在那些容易被忽略的地方!

以后编码出现意料之外的问题的时候,还是需要更仔细一些,全面逐行排查才行!!!

把这个问题记录在 CSDN ,谨记教训!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值