Ескейпиране в специален символ на Python 3.3.2

Този следобед не можах да разбера това и реших да попитам. Опитвам се да генерирам някакъв html код с препратка към Google Maps. Моят изходен файл е .csv и моят разделител е ;

Python продължава да разбива URL адреса на Google Maps и да го поставя в друга колона. Ето URL низа, който трябва да запази необработените &

http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Phoenix+AZ&ie=UTF8&z=12&t=m&iwloc=near&output=embed

Трябва да запазя amp; в този url ред. Опитах няколко различни кода, но нищо не работи. Ето къде е кодът в моя скрипт.

'<iframe width="425" scrolling="no" height="350" frameborder="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=' + line.split(",")[0]+"" + ' ' + line.split(",")[1]+"" + '&amp;ie=UTF8&amp;z=12&amp;t=m&amp;iwloc=near&amp;output=embed" marginwidth="0" marginheight="0"></iframe>'

person Matt    schedule 11.02.2014    source източник
comment
Сигурни ли сте, че трябва да запазите amp;? Връзката ми изглежда повредена (опитайте). Току-що премахнах частта amp; и всъщност получих връзката ви работи. Можете също така да замените специални знаци в URL адресите с техните ascci кодове, с префикс % (& --› %26). Модулът urllib/urllib2 също може да помогне с кодирането.   -  person dcsordas    schedule 12.02.2014
comment
Ти си страхотен! Ето в това беше проблема. Сега картите се зареждат добре. Благодаря ти много.   -  person Matt    schedule 12.02.2014


Отговори (1)


За да избегнете амперсандите, трябва да замените &s с \&s. Виждам, че сте се опитали да избегнете амперсандите с екраниране на html знаци, но това не работи по същия начин в Python. Следователно трябва да промените &amp; в \&.

Добавяне на обратни наклонени черти без екраниране [Python]

Съжалявам, имах главоболие и някак си помислих, че амперсандите трябва да бъдат екранирани в Python, когато не го правят. :P

person hydronium    schedule 12.02.2014
comment
Прав си, но връзката, която получаваш по този начин, все още е прекъсната. - person dcsordas; 12.02.2014