[Python] String com caracteres especiais usados como chaves em dicionário.

985 views
Skip to first unread message

contatog...@gmail.com

unread,
Oct 25, 2011, 2:25:45 PM10/25/11
to django...@googlegroups.com
Olá a todos,

Um amigo meu que é desenvolvedor Python pediu uma idéia do que fazer para que não ocorra problemas caso for usar uma chave em um dicionário que é uma string e que usa caracteres especiais como esse:

{"São João": "Teste123, "São Paulo": 123123}

Eu queria ver sugestões de todos. O que podemos fazer para que não ocorra futuramente, erros ao usar esses tipos de chave?
_____________________________________________
Gilson Filho

caio

unread,
Oct 25, 2011, 2:51:34 PM10/25/11
to django...@googlegroups.com
Eu não entendi. Qual o problema?

-- caio


--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

Francisco Souza

unread,
Oct 25, 2011, 2:54:45 PM10/25/11
to django...@googlegroups.com

Olá a todos,

Um amigo meu que é desenvolvedor Python pediu uma idéia do que fazer para que não ocorra problemas caso for usar uma chave em um dicionário que é uma string e que usa caracteres especiais como esse:

{"São João": "Teste123, "São Paulo": 123123}

Eu queria ver sugestões de todos. O que podemos fazer para que não ocorra futuramente, erros ao usar esses tipos de chave?

Use unicode, entenda como funciona [1] e seu amigo não terá problemas.

contatog...@gmail.com

unread,
Oct 25, 2011, 9:04:11 PM10/25/11
to django...@googlegroups.com
Compartilhei porque isso é uma dúvida interessante para dividir =)

Andrews Medina

unread,
Oct 25, 2011, 10:28:31 PM10/25/11
to django...@googlegroups.com
Só para constar: Um guia bem legal sobre unicode
http://docs.python.org/howto/unicode.html

Valeu!
--
Andrews Medina
www.andrewsmedina.com

Ivanildo Filho

unread,
Oct 25, 2011, 11:37:04 PM10/25/11
to django...@googlegroups.com
{"São João": "Teste123, "São Paulo": 123123}

Simples:
{u"São João": "Teste123, u"São Paulo": 123123}
Na consulta use: dicionario[u"São Paulo"]

Mas a estética fica a desejar neste caso. Mas é um assunto a pensar por parte dos desenvolvedores Python.
Um fato parecido ocorreu recentemente com o lançamento do Java 7 a possibilidade de case com strings. Antes tinha que se associar determinado dado com números em uma case.

contatog...@gmail.com

unread,
Oct 26, 2011, 9:44:41 AM10/26/11
to django...@googlegroups.com
Tinha sugerido para ele usar isso mesmo: u"São Paulo"

Emerson Urushibata

unread,
Oct 31, 2011, 5:18:30 AM10/31/11
to django...@googlegroups.com
para ter certeza que a codificação estará como utf-8, coloque na primeira linha do arquivo .py o comentário de # coding: utf-8 ou #-*- coding: UTF-8 -*-


--
Emerson Takeshi Urushibata
Informática Biomédica - FFCLRP/FMRP
Ribeirão Preto, Universidade de São Paulo

+55 16 8811-8102
+55 16 9294-0802
skype: eurushibata



Reply all
Reply to author
Forward
0 new messages