[python-brasil] Problemas ao ler arquivo json

50 views
Skip to first unread message

Guilherme Carvalho desenvolvedor.net@gmail.com [python-brasil]

unread,
Aug 18, 2015, 4:13:37 PM8/18/15
to python...@yahoogrupos.com.br
 

Boa tarde.

Estou precisando ler um arquivo JSON e depois passar ele para uma função angularjs. Para fazer a leitura está tudo tranquilo, estou usando o código abaixo:

file_salgados = open("{0}/salgados.json".format(path))
salgados_json = json.load(file_salgados)

O problema é que o retorno dessa função me traz uma estrutura assim:

[{u'prato': u'arroz-de-cuxa-com-creme-de-pequi', u'foto': u'img/salgado/arroz-de-cuxa-com-creme-de-pequi.jpg', u'chefe': u'Andreia Teixeira de Freitas Rocha', u'descricao': u'\xc9 um prato com os ingredientes mais t\xedpicos do estado do Maranh\xe3o e do Tocantins. O cux\xe1 e o pequi al\xe9m da carne seca s\xe3o muito apreciados nesses estados. T\xe3o ricos nessa culin\xe1ria', u'titulo': u'Arroz de Cux\xe1 com Creme de Pequi'}, {u'prato': u'tortelline-do-serrado' ....]

Ou seja tudo é unicode, e quando tento passar isso para o AngularJS ele acusa o erro. Minha dúvida portanto é existe alguma forma de "parsear" um arquivo JSON e retornar apenas string mesmo?

Atenciosamente,

Guilherme de Carvalho Carneiro
Analista de sistemas
twitter: @GCarneiro
http://djangopeople.net/guilhermecarvalho/

__._,_.___

Enviado por: Guilherme Carvalho <desenvol...@gmail.com>
Responder através da web através de email Adicionar um novo tópico Mensagens neste tópico (1)

.

__,_._,___

Alexandre Machado axmachado@gmail.com [python-brasil]

unread,
Aug 18, 2015, 5:21:30 PM8/18/15
to python...@yahoogrupos.com.br
 

Peraí, Guilherme... deixa eu ver se entendi direito...

Vc. quer ler o conteúdo do arquivo como string e passar para o angular como string?

Se for isto, quem vai "parsear" o Json é o próprio angular... tudo o que vc. precisa fazer é ler o conteúdo do arquivo.

seria algo mais ou menos assim:

file_salgados = open("{0}/salgados.json".format(path), 'r')
salgados_json = file_salgados.read()
file_salgados.close()

Nesta situação, a sua variável salgados_json contém o "string" json que está dentro do arquivo.

Note que, com esta abordagem, seu script não está validando o json (não esta tentando fazer o parse do dito cujo).

Vc. pode até validar fazendo o seguinte:

try:
    conteudo_validado = json.loads(salgados_json)
    # aqui você faz a chamada para o AngularJS, pois só chega neste ponto se o json for válido
except ValueError,v:
    # tratamento do erro, como, por exemplo
    print ("Json Inválido:", v.message)

Com isto, vc. não vai passar JSON inválido para o AngularJS

Alexandre




Em 18-08-2015 17:13, Guilherme Carvalho desenvol...@gmail.com [python-brasil] escreveu:
 
Boa tarde.

Estou precisando ler um arquivo JSON e depois passar ele para uma função angularjs. Para fazer a leitura está tudo tranquilo, estou usando o código abaixo:

file_salgados = open("{0}/salgados.json".format(path))
salgados_json = json.load(file_salgados)

O problema é que o retorno dessa função me traz uma estrutura assim:

[{u'prato': u'arroz-de-cuxa-com-creme-de-pequi', u'foto': u'img/salgado/arroz-de-cuxa-com-creme-de-pequi.jpg', u'chefe': u'Andreia Teixeira de Freitas Rocha', u'descricao': u'\xc9 um prato com os ingredientes mais t\xedpicos do estado do Maranh\xe3o e do Tocantins. O cux\xe1 e o pequi al\xe9m da carne seca s\xe3o muito apreciados nesses estados. T\xe3o ricos nessa culin\xe1ria', u'titulo': u'Arroz de Cux\xe1 com Creme de Pequi'}, {u'prato': u'tortelline-do-serrado' ....]

Ou seja tudo é unicode, e quando tento passar isso para o AngularJS ele acusa o erro. Minha dúvida portanto é existe alguma forma de "parsear" um arquivo JSON e retornar apenas string mesmo?

Atenciosamente,

Guilherme de Carvalho Carneiro
Analista de sistemas
twitter: @GCarneiro
http://djangopeople.net/guilhermecarvalho/

__._,_.___

Enviado por: Alexandre Machado <axma...@gmail.com>
.

__,_._,___
Reply all
Reply to author
Forward
0 new messages