Форум сайта python.su
857
Да можно и json сломать, просунув туда что-нибудь, но это уже не простой eval(), а нужно чтобы был баг в парсере json'а, а это куда реже встречается.
Офлайн
0
Не ожидал такого обсуждения вокруг своего ламерского вопроса.
Про json понял, попробовал использовать. Вроде как должен работать, но ловлю ошибку.
Для того, что бы было совсем понятно, приведу фрагмент своей программы:
Опущу процесс получения строки, но в итоге мне нужно десериализовать ебическую небольшую строку, которую будет точно неудобно показывать вам тут, так что вот ссылка на неё в моём OneDrive: https://1drv.ms/t/s!AsP0diW_mlpIi6tzmjrIT18VA1_4Ew #обратите внимание, сслку нужно скопировать полностью
Ну так, вот когда я пытаюсь json.loads(string), то получаю трейсбек:
Traceback (most recent call last): File "C:\Users\BearPro\documents\visual studio 2015\Projects\FreeShow\FreeShow\Parcer\Parcer.py", line 107, in <module> (commentList, commentParced) = generateComments() File "C:\Users\BearPro\documents\visual studio 2015\Projects\FreeShow\FreeShow\Parcer\Parcer.py", line 101, in generateComments getNextCommentsPage() File "C:\Users\BearPro\documents\visual studio 2015\Projects\FreeShow\FreeShow\Parcer\Parcer.py", line 97, in getNextCommentsPage commentData = json.loads(postContent) File "C:\Program Files (x86)\Python35-32\lib\json\__init__.py", line 319, in loads return _default_decoder.decode(s) File "C:\Program Files (x86)\Python35-32\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Program Files (x86)\Python35-32\lib\json\decoder.py", line 355, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 141 (char 140)
Отредактировано BearPro (Дек. 9, 2016 15:54:29)
Офлайн
568
У вас невалидный json, двойные кавычки внутри строк надо заменить на одинарные.
{“html”:"\\n\\t\\t\\t\\t<div id=\\"comment_76896290\\"}что должен подумать парсер, когда дойдет до этой кавычки? Разумеется, что строка кончилась, а за ней должна быть запятая и новый ключ либо закрывающая скобка.
Офлайн
0
FishHookТак там же стоит \", что вроде как не должно пониматься именно как символ ", а не как окончание строки.
У вас невалидный json, двойные кавычки внутри строк надо заменить на одинарные.
Отредактировано BearPro (Дек. 9, 2016 20:37:49)
Офлайн
857
Это json, но он не загружается, потому что невалидный. Скорее всего, ты его неправильно нам передал, хотя бывают и на сайтах косяки такие (неправильные страницы, неправильные данные).
BearProНу, посмотрели через HttpFox - всё нормально загружается, нормальный json.
Можете сами посмотреть, куда и какой запрос при этом посылается, и что возвращается.
Отредактировано py.user.next (Дек. 10, 2016 03:25:57)
Офлайн