如何处理 JSON 响应
how to deal with JSON response
我正在使用 Python websockets 到 return JSON 对象(我认为)但是我不确定如何处理响应。我有一个使用 JavaScript 的示例,它使用 parseJSON,下面是一个片段:
socket = io.connect("__socket address__");
socket.on("connect", function() {socket.emit("subscribe_areas", areas)});
var d = jQuery.parseJSON(c);
console.log(d);
d.type == "INTERPOSE";
我可以访问哪些 returns 数据,例如 d.type == "INTERPOSE";:
Object {area: "BE", type: "MOVE", to: "0109", from: "0107", value: "2L65"}
Object {area: "BE", type: "MOVE", to: "0113", from: "0109", value: "2L65"}
我的 Python 我收到了:
(u'{"area":"EH","type":"INTERPOSE","to":"B243","value":""}',)
(u'{"area":"EH","type":"INTERPOSE","to":"0337","value":""}',)
(u'{"area":"EH","type":"INTERPOSE","to":"0085","value":""}',)
为什么 python return JSON 包含在方括号和逗号中?我的 Python 如下:
from socketIO_client import SocketIO
import logging
import json
def on_connect():
print('CONNECTED')
areas = ['EH']
socketIO.emit('subscribe_areas', areas)
def on_message(*answer):
print(answer)
socketIO = SocketIO('_address_', _port_)
socketIO.on('connect', on_connect)
socketIO.on('message', on_message)
socketIO.wait()
我尝试使用 json.load、json.loads、json.decode 解码,但收到各种错误。我错过了什么,为什么 return 被括在方括号中?
您告诉 Python 需要 0 个或更多参数:
def on_message(*answer):
print(answer)
Python 然后给你一个包含所有传入参数的元组;你的 print 语句显示你有一个参数,所以你得到一个只有一个元素的元组。该元素是一个 JSON 字符串,您将使用 json.loads()
.
对其进行解码
取第一个元素并解码:
def on_message(*answer):
print(json.loads(answer[0]))
或者不使用 *
并要求始终传入一个参数并从该参数加载
def on_message(answer):
print(json.loads(answer))
我正在使用 Python websockets 到 return JSON 对象(我认为)但是我不确定如何处理响应。我有一个使用 JavaScript 的示例,它使用 parseJSON,下面是一个片段:
socket = io.connect("__socket address__");
socket.on("connect", function() {socket.emit("subscribe_areas", areas)});
var d = jQuery.parseJSON(c);
console.log(d);
d.type == "INTERPOSE";
我可以访问哪些 returns 数据,例如 d.type == "INTERPOSE";:
Object {area: "BE", type: "MOVE", to: "0109", from: "0107", value: "2L65"}
Object {area: "BE", type: "MOVE", to: "0113", from: "0109", value: "2L65"}
我的 Python 我收到了:
(u'{"area":"EH","type":"INTERPOSE","to":"B243","value":""}',)
(u'{"area":"EH","type":"INTERPOSE","to":"0337","value":""}',)
(u'{"area":"EH","type":"INTERPOSE","to":"0085","value":""}',)
为什么 python return JSON 包含在方括号和逗号中?我的 Python 如下:
from socketIO_client import SocketIO
import logging
import json
def on_connect():
print('CONNECTED')
areas = ['EH']
socketIO.emit('subscribe_areas', areas)
def on_message(*answer):
print(answer)
socketIO = SocketIO('_address_', _port_)
socketIO.on('connect', on_connect)
socketIO.on('message', on_message)
socketIO.wait()
我尝试使用 json.load、json.loads、json.decode 解码,但收到各种错误。我错过了什么,为什么 return 被括在方括号中?
您告诉 Python 需要 0 个或更多参数:
def on_message(*answer):
print(answer)
Python 然后给你一个包含所有传入参数的元组;你的 print 语句显示你有一个参数,所以你得到一个只有一个元素的元组。该元素是一个 JSON 字符串,您将使用 json.loads()
.
取第一个元素并解码:
def on_message(*answer):
print(json.loads(answer[0]))
或者不使用 *
并要求始终传入一个参数并从该参数加载
def on_message(answer):
print(json.loads(answer))