двойные кавычки в строке с двойными кавычками при парсинге в python - PullRequest
1 голос
/ 20 июня 2020

Я очищаю несколько списков, например, следующий

[{"idEquipo":"0201009011", "nombreEquipo":"At. Saguntino", "urlEscudo":"./img/logosClubes/0201009.jpg"},\n   {"idEquipo":"0202137151", "nombreEquipo":"C.D. Roda "A"", "urlEscudo":"./img/logosClubes/0202137.jpg"},\n   {"idEquipo":"0201017011", "nombreEquipo":"U.D. Alzira", "urlEscudo":"./img/logosClubes/0201017.jpg"}]

У меня проблемы с двойной кавычкой в ​​"nombreEquipo":"C.D. Roda "A"", и я получаю SyntaxError. как я могу заменить букву «А» на букву «А»?

Я не создаю список, я получаю его прямо с веб-страницы, поэтому мне нужно иметь возможность анализировать его содержимое.

Ссылка, с которой я очищаю, - ссылка , мой код, используемый для очистки этой ссылки:

    page=requests.get("https://www.ffcv.es/ncompeticiones/server.php?action=getEquiposCompeticion&cmp=1261&tmp=2019/2020", headers=headers)
    soup=BeautifulSoup(page.text,'lxml')
    lista=soup.find("p").text
    lista=ast.literal_eval(lista)

, или в конце я также попробовал вместо lista=ast.literal_eval(lista) Я набираю lista=json.loads(lista)

для этой конкретной c страницы, если я печатаю список, я получаю

'[{"idEquipo":"0201128221", "nombreEquipo":"Alboraya U.D. "B"", "urlEscudo":"./img/logosClubes/0201128.jpg"},{"idEquipo":"0203002021", "nombreEquipo":"C.D. Alcoyano "A"", "urlEscudo":"./img/logosClubes/0203002.jpg"},{"idEquipo":"0202001021", "nombreEquipo":"C.D. Castellon, "A"", "urlEscudo":"./img/logosClubes/0202001.jpg"},{"idEquipo":"0203008201", "nombreEquipo":"C.D. Denia "A"", "urlEscudo":"./img/logosClubes/0203008.jpg"},{"idEquipo":"0201290201", "nombreEquipo":"C.D. Don Bosco "A"", "urlEscudo":"./img/logosClubes/0201290.jpg"},{"idEquipo":"0202137211", "nombreEquipo":"C.D. Roda "B"", "urlEscudo":"./img/logosClubes/0202137.jpg"},{"idEquipo":"0201118201", "nombreEquipo":"C.D. San Marcelino "A"", "urlEscudo":"./img/logosClubes/0201118.jpg"},{"idEquipo":"0203848201", "nombreEquipo":"C.F. At. Ciudad de Benidorm "A"", "urlEscudo":"./img/logosClubes/0203848.jpg"},{"idEquipo":"0206096201", "nombreEquipo":"C.F. Celtic Elche "A"", "urlEscudo":"./img/logosClubes/0206096.jpg"},{"idEquipo":"0201411201", "nombreEquipo":"C.F. Inter San Jose Valencia "A"", "urlEscudo":"./img/logosClubes/0201411.jpg"},{"idEquipo":"0201338021", "nombreEquipo":"C.F. Torre Levante "B"", "urlEscudo":"./img/logosClubes/0201338.jpg"},{"idEquipo":"0203526211", "nombreEquipo":"Elche C.F. SAD "B"", "urlEscudo":"./img/logosClubes/0203526.jpg"},{"idEquipo":"0203541011", "nombreEquipo":"Kelme C.F. "A"", "urlEscudo":"./img/logosClubes/0203541.jpg"},{"idEquipo":"0201002041", "nombreEquipo":"Levante U.D. SAD "B"", "urlEscudo":"./img/logosClubes/0201002.jpg"},{"idEquipo":"0201233011", "nombreEquipo":"Racing D\\" Algemesi-global Supply "A"", "urlEscudo":"./img/logosClubes/0201233.jpg"},{"idEquipo":"0203558201", "nombreEquipo":"S.C.D. Intangco "A"", "urlEscudo":"./img/logosClubes/0203558.jpg"},{"idEquipo":"0201001041", "nombreEquipo":"Valencia C.F. SAD 'B'", "urlEscudo":"./img/logosClubes/0201001.jpg"},{"idEquipo":"0202004051", "nombreEquipo":"Villarreal C.F. SAD "B"", "urlEscudo":"./img/logosClubes/0202004.jpg"}]'

Ответы [ 2 ]

1 голос
/ 23 июня 2020

Ответ, который я получил от user2357112, поддерживает Monica, был правильным:

Эта страница является документом JSON, а не HTML. Вы не должны передавать его в парсер HTML (или в ast.literal_eval). Вы пробовали page.json()

1 голос
/ 20 июня 2020

В Python вы можете использовать как двойные кавычки ("), так и одинарные кавычки (') для обозначения строковых литералов. Чтобы создать строковый литерал, включая кавычки, используйте, например,

'Some "string"'

или избегайте кавычек. , например,

"Some \"string\""
...