2012-05-08 20 views
9

tengo una vista ajax:carga Django archivo JSON locales

def ajax_prices(request): 
    data = {'data':'data'} 
    return HttpResponse(json.dumps(data), mimetype='application/json') 

Quiero probar esto con un archivo JSON local (prices.json). ¿Cómo puedo importar un archivo json local?

archivo JSON local 'prices.json'

{"aaData": [ 
[1, "70.1700", "2008-12-29 11:23:00"], 
[2, "70.2600", "2008-12-29 16:22:00"], 
[3, "70.6500", "2008-12-30 11:30:00"], 
[4, "70.8700", "2008-12-30 16:10:00"], 
[5, "70.5500", "2009-01-02 11:09:00"], 
[6, "70.6400", "2009-01-02 16:15:00"], 
[7, "70.6500", "2009-01-05 11:17:00"] 
]} 

no puedo hacer eso con:

data = '/static/prices.json' 

Respuesta

21

Uso del módulo json:

import json 

json_data = open('/static/prices.json') 
data1 = json.load(json_data) // deserialises it 
data2 = json.dumps(json_data) // json formatted string 

json_data.close() 

Ver here para obtener más información

Como dijo Joe, es una mejor práctica usar fixtures o factories para sus datos de prueba.

+0

consigo un error No se dicho archivo o directorio: '/static/portal/sample-dap.json' ... el archivo se encuentra en la aplicación/static/app/prices.json – nelsonvarela

+0

La ruta debe ser relativa al script de llamada o bien especificar una ruta completa – DanS

+0

tengo problemas con la ruta relativa .... no sé cuál es la ruta – nelsonvarela

5

el truco aquí es el uso de Python incorporada en los métodos para open ese archivo, leer su contenido y analizarlo mediante el módulo json

es decir

import json 

data = open('/static/prices.json').read() #opens the json file and saves the raw contents 
jsonData = json.dumps(data) #converts to a json structure 
+0

me olvido de poner .read() . Gracias –