1. 程式人生 > 其它 >Python獲取伺服器響應json並輸出到螢幕

Python獲取伺服器響應json並輸出到螢幕

技術標籤:PythonLinux筆記pythonjsonpostlinuxclient server

起因

我需要編寫一個用Python製作的登入指令碼,但是得獲取伺服器反饋的JSON資料否則不知道是否成功。
我先用常規方法試了一下,下面是我的程式碼

import requests
url="網址"
header={"Host":"網址","User-Agent":"資訊",}
data={"uid":"****","token"
:"*****"} r=requests.post(url,data=data,headers=header) #這裡我是將payload定為data型別的 print(r.json())

然後伺服器給我的反饋就是

{'data': None, 'message': 'invalid input format: invalid json value', 'retcode': -502}
#錯誤無法輸出

於是我在網上找了各種各樣的教程,一個接一個的都試了一遍,發現全部沒用,最後我改了個引數,好了,一切正常了。

解法

import requests
url="網址"
header={"Host":"網址","User-Agent":"資訊",} data={"uid":"****","token":"*****"} r=requests.post(url,json=data,headers=header) #這裡我將payload改為了json型別 print(r.json())

伺服器反饋成功,沒有報錯

{'retcode': 0, 
'message': 'OK', 
'data': {'account'
: {'uid': '****', 'name': '', 'email': '****', 'mobile': '****', 'is_email_verify': '****', 'realname': '****', 'identity_card': '****', 'token': '****', 'safe_mobile': '****', 'facebook_name': '', 'google_name': '', 'twitter_name': '', 'game_center_name': '', 'apple_name': '', 'sony_name': '', 'tap_name': '', 'country': ''}, 'device_grant_required': False, 'safe_moblie_required': False, 'realperson_required': False}}

問題解決