У меня есть сокет в C отправкой этого char[]
(String) через TCP сокет:Проблемы разбор JSON в Python
{"time":0, "latitude":0.0000000, "longitude":0.0000000, "heading":0.000000, "roll":0.000, "pitch":0.000, "yaw":0.000}
Похоже, что он должен быть признан действительным JSON в моем клиенте Python, но работает:
parsed = json.loads(sock.recv(1024).decode('utf-8'))
Формирует следующее сообщение об ошибке:
ValueError: Extra data: line 1 column 117 - line 1 column 1024 (char 117 - 1024
Может быть, C бросает в некоторых дополнительные биты, которые Python не нравится.
Полагая, что это так, я пытаюсь позвонить decode('ascii', 'ignore')
на входной строке, надеясь, что это выведет эти символы, но до сих пор ничего не работало.
Любая помощь была бы принята с благодарностью!
Каково это при печати? –
Если я печатаю 'sock.recv (1024) .decode ('utf-8')' I get '{« time »: 0,« широта »: 0,0000000,« долгота »: 0,0000000,« заголовок »: 0,000000, roll ": 0.000," pitch ": 0.000," yaw ": 0.000}', как и следовало ожидать. –
@JamesTaylor: и что, если вы используете 'print repr (sock.recv (1024) .decode ('utf-8'))'? –