2012-05-08 6 views
9

У меня есть вид АЯКС:Джанго нагрузки локального файла JSON

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

Я хочу, чтобы проверить это с локальным файлом JSon (prices.json). Как импортировать локальный файл json?

Локальный файл JSON '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"] 
]} 

Я не могу сделать это с помощью:

data = '/static/prices.json' 

ответ

21

Используйте модуль 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() 

См here для более Информация.

Как сказал Джо, лучше использовать fixtures или factories для ваших тестовых данных.

+0

я получаю сообщение об ошибке Нет такой файл или каталог: '/static/portal/sample-dap.json' ... файл находится в appfolder/static/app/prices.json – nelsonvarela

+0

Путь должен быть относительно вызывающего скрипта или указать полный путь – DanS

+0

У меня проблемы с относительным путем .... я не знаю, что путь – nelsonvarela

5

трюк здесь заключается в использовании Python встроенный в методах open, что файл, прочитать его содержимое и разобрать его с помощью модуля json

т.е.

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

я забываю поставить .read() , благодаря –