簡體   English   中英

在以下情況下為什么不能解碼JSON消息?

[英]Why can't I decode a JSON message in the following situation?

我正在嘗試通過發布請求將JSON消息從計算機發送到另一台計算機。 發送消息的腳本如下:

message = {'station':'turn on'}
res = rest.send( 'POST', server_addr + "/newstation", json.dumps(message), {'Content-Type': 'application/json'} )

rest.send(...)方法應該是正確的,因為我之前使用過它,並且效果很好。

發送發布請求的PC運行Linux,而接收請求的PC運行Win 8(如果有任何意義)。

在接收機上,我有以下內容:

@app.route('/newstation', methods = ['POST'])
def new_station ():
    j_data = request.get_json()
    d = decode_data(j_data)

其中decode_data(j_data)是以下內容

def decode_data(j_data):
    d = json.loads(j_data)
    return d

我的問題是:每當我嘗試從第一台計算機發送發布請求時,響應都是“內部服務器錯誤”,而在帶有服務器的計算機上,返回的錯誤是“ TypeError:期望的字符串或緩沖區”。 現在,我認為這可能是字符串編碼的問題。

收到發布請求,我可以毫無問題地打印json內容,當我嘗試解碼時會出現問題。

我解決了這個問題,這是我的錯(當然)。 我誤解了文檔。

@app.route('/newstation', methods = ['POST'])
def new_station ():
   j_data = request.get_json()
   #d = decode_data(j_data)

request.get_json()已經向我返回了一個字典,因此實際上並不需要解碼_數據功能。 我已經有了不需要json.loads()的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM