Pregunta

Tengo una lista de etiquetas que me gustaría añadir a una cadena URL, separados por comas ( '% 2C'). Cómo puedo hacer esto ? Yo estaba tratando:

>>> tags_list
['tag1', ' tag2']
>>> parse_string = "http://www.google.pl/search?q=%s&restofurl" % (lambda x: "%s," %x for x in tags_list)

pero recibió un generador:

>>> parse_string
'http://<generator object <genexpr> at 0x02751F58>'

También necesito para cambiar comas para %2C? Lo necesito para feedpaarser a los resultados de análisis. Si es así - ¿cómo puedo insertar las etiquetas separadas por el signo especial


EDIT:

parse_string = ""
for x in tags_list:
    parse_string += "%s," % x

pero puedo escapar de este %2C? También estoy bastante seguro de que hay una manera más corto 'lambda':)

¿Fue útil?

Solución

parse_string = ("http://www.google.pl/search?q=%s&restofurl" % 
               '%2C'.join(tag.strip() for tag in tags_list))

Los resultados en:

>>> parse_string = ("http://www.google.pl/search?q=%s&restofurl" %
...                '%2C'.join(tag.strip() for tag in tags_list))
>>> parse_string
'http://www.google.pl/search?q=tag1%2Ctag2&restofurl'

Nota al margen:
En el futuro creo que desea utilizar format() para la interpolación de cadenas, por ejemplo:

>>> parse_string = "http://www.google.pl/search?q={0}&restofurl".format(
...                '%2C'.join(tag.strip() for tag in tags_list))
>>> parse_string
'http://www.google.pl/search?q=tag1%2Ctag2&restofurl'

Otros consejos

"%s" está bien, pero después de urlparse.urlunparse urllib.urlencode es más seguro.

str.join está muy bien, pero recuerde que debe revisar sus etiquetas para las comas y signos de número, o el uso urllib.quote de cada uno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top