2017-02-14 39 views
-1

我無法從Django中的json文件創建json對象。這是代碼。 我有一個叫做out.json的文件,裏面有json對象。我想發送這些對象作爲迴應。我收到一個錯誤說無法從DJANGO中的json文件導入json對象

FileNotFoundError在/ projectboard /隨機 [錯誤2]沒有這樣的文件或目錄: 'out.json'

views.py

from django.shortcuts import render, HttpResponseRedirect 
import sys, os 
import json 
from django.http import JsonResponse 
from tempfile import * 

import subprocess 


# Create your views here. 
from django.http import HttpResponse 

def random(request): 
    os.system('python pypy.py') 

    with open('out.json') as json_data: 
     data = json.load(json_data) 
     print(data) 

    return JsonResponse(data) 

網址。 PY

from rest_framework.routers import DefaultRouter 
from django.views.generic import TemplateView 
from django.conf.urls import url, include 
from . import views 

urlpatterns = [ 
     url(r'^random$', views.random, name='random'), 
     url(r'^view/(?P<id_remedio>\w+)/$', views.view, name='view'), 
     url(r'^view/$', views.view, name='view') 
] 
+1

'out.json'存儲在哪裏? – 4140tm

+0

out.json存儲在同一個目錄下,即Projectboard – ARUNIMA

+0

看起來它無法找到'out.json'。嘗試通過給出對​​應於'out.json'的views.py的絕對路徑或相對路徑 –

回答

1

out.json文件應在與manage.py文件

相同的目錄
foo/ 
    manage.py 
    foo/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 

    out.json 
1

移動out.json到目錄 /projectboard/out.json

out.json必須在同一目錄views.py,或者作爲PY文件調用open(file)。如果您使用的是Linux或OS X,請導航至/projectboard文件夾,然後鍵入ls以列出要進行仔細檢查的文件out.json位於正確的路徑中。否則在Windows機器上使用dir

0

我會確保包含文件的完整路徑。除非你的out.json相同的文件夾作爲文件試圖打開它,你會得到該錯誤。更好的是,如果您的應用程序中有上述文件中的對象,或者只是爲了清理項目,我會在應用中包含/ fixtures /文件夾,並將所有.json文件放在那裏。然後,您有一個簡單的方法來獲取這些文件的根目錄(可以包含在你的settings.py文件) - 這樣的:

FIXTURES_ROOT = os.path.abspath(os.path.dirname(__file__)) + '/fixtures/' 

然後,您可以只使用

from django.conf import settings 
... 
json_path = settings.FIXTURES_ROOT + <YOUR_JSON_FILENAME> 

整個項目