[英]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.