Я новичок в использовании json, мне нужно отправить "данные", как указано,
import json, socket
data = '{"command":"off"}'
_send(socket, data)
def _send(socket, data):
try:
serialized = json.dumps(data).replace('\\','')
except (TypeError, ValueError) as e:
raise Exception('You can only send JSON-serializable data')
# send the length of the serialized data first
socket.send(('%d\n' % len(serialized)))
# send the serialized data
socket.sendall(serialized)#.encode('utf-8'))
на сервере мне нужны данные, как показано ниже,
{"command":"off"}
но сервер получил данные, как показано ниже,
"{"command":"off"}"20
как удалить дополнительные строки.
Ваши данные представляют собой строку, но сервер ожидает объект. Попробуйте отправить его вместо этого.
data = {"command":"off"} # note this is a python dictionary
def _send(socket, data):
try:
serialized = json.dumps(data) # no stripping necessary
except (TypeError, ValueError) as e:
...
Эта строка была красным флагом json.dumps(data).replace('\\','')
Это обычно означает, что вы случайно закодировали строку, когда вы хотели кодировать объект.
data
, превратив их в словарь?