Python - problemas al comparar dos variables

 
Vista:
sin imagen de perfil

problemas al comparar dos variables

Publicado por Francisco José (6 intervenciones) el 16/03/2017 01:05:00
Cuando escribo un string con un caracter especial, en este caso Título, cuando uso print me sale T├¡tulo. En el mismo archivo tengo como primeras lineas lo siguiente:

1
2
#!D:/proyecto_django/Scripts/python.exe
# -*- coding: utf-8 -*-

He probado a ponerlo con la barras invertidas, cargado python desde D:/python27/python.exe, sin el .exe y varias formas. La cosa es que lo necesito porque quiero compararlo con un campo que lo consigo de una página externas (codificada en utf 8) usando la libreria lxml.

A ver si alguien me puede ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

problemas al comparar dos variables

Publicado por kip (257 intervenciones) el 16/03/2017 01:20:16
Hola, intenta usar el antecesor u para declarar el string UNICODE, asi:

1
2
# -*- coding: utf-8 -*-
print u'Título'

Prueba y cuentanos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

problemas al comparar dos variables

Publicado por Francisco José (6 intervenciones) el 16/03/2017 12:31:36
Gracias por la respuesta, pero podrias explicarme ¿porque con una u delante del string ya si se ve bien?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

problemas al comparar dos variables

Publicado por kip (257 intervenciones) el 16/03/2017 13:52:10
Sucede porque en Python 2 la codificacion interna de las cadenas no es unicode como lo es en Python 3, entonces por ello se debe especificar aquello si sabemos que una cadena tendra acentos o caracteres especiales.

Normal strings in Python are stored internally as 8-bit ASCII, while Unicode strings are stored as 16-bit Unicode. This allows for a more varied set of characters, including special characters from most languages in the world.
https://www.tutorialspoint.com/python/python_strings.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

problemas al comparar dos variables

Publicado por Francisco José (6 intervenciones) el 16/03/2017 13:15:23
El problema ahora es este.

Quiero crear un diccionario

1
2
pelicula = {}
pelicula[u'año'] = 1987

Aunque le ponga la u delante lo que me guarda es lo siguiente:

{u'A\xf1o': '1987'}

Con lo otro no ha habido problemas pero con este si.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar