python curl命令


今天下午來到,運行了curl -i url:port ,然后返回的信息,用json.loads()解析,出報一下錯誤:

Traceback (most recent call last):
  File "test1.py", line 12, in <module>
    decodejson = json.loads(str1)
  File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.4/json/decoder.py", line 361, in raw_decode
    raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)

測試1:原來以為是python不能解析json的null,試着把json的null換成其他的字符串,發現還是報這個錯。。。。后來查了一下 ,loads()可以將json的null轉換成None的。。沒毛病!

測試2:后來懷疑,運維傳過來的字符串不是json格式。使用eval()函數判別返回數據類型,判斷方式:

try:
    eval(jsonStr)
except Exception,e :

    print "不是json字符串"

發現,懷疑有理!,果然不是json,一步一步往上走;

測試3:既然不是json,那么要么是后台數據有問題,要么我調取的命令不對。。和后台的人一起測試,發現:果然是curl命令的問題。。。。。

     curl -i XXXXX 返回的是整個http的內容。。。包括請求行。請求體。請求頭。。。

     而curl XXXX 返回的則只有http請求體。。。

 

總結一下:1、寫代碼,一定要寫個邏輯判斷,或者try。。catch。。 要不然bug真的很難找

2、有時間看一下curl,功能強大的一筆啊!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM