2017-02-14 4 views
-1

Ich kann JSON-Objekte aus JSON-Datei in Django nicht erstellen. Hier ist der Code. Ich habe eine Datei namens out.json mit JSON-Objekten darin. Ich möchte diese Objekte als Antwort senden. Ich erhalte eine FehlermeldungKann JSON-Objekte aus JSON-Datei in DJANGO nicht importieren

FileNotFoundError bei/Project/random [Errno 2] Datei oder Verzeichnis nicht sagen: '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) 

Urls. 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

Wo wird 'out.json' gespeichert? – 4140tm

+0

out.json wird im selben Verzeichnis gespeichert, d. H. Auf dem Projektboard – ARUNIMA

+0

Es sieht so aus, als ob es nicht in der Lage ist, das 'out.json' zu finden. Versuchen Sie, indem Sie den absoluten Pfad oder den relativen Pfad angeben, der views.py von 'out.json' entspricht. –

Antwort

1

out.json Datei im selben Verzeichnis mit manage.py Datei sollte

foo/ 
    manage.py 
    foo/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 

    out.json 
1

Verschieben out.json zum Verzeichnis /projectboard/out.json

out.json müssen views.py im selben Verzeichnis sein, oder wie die py-Datei open(file) aufrufen. Wenn Sie Linux oder OS X verwenden, navigieren Sie zum Ordner /projectboard, und geben Sie ls ein, um die zu prüfenden Dateien aufzulisten. out.json befindet sich im richtigen Pfad. Andernfalls verwenden Sie dir auf einem Windows-Computer.

0

Ich würde sicherstellen, einen vollständigen Pfad zu der Datei hinzuzufügen. Es sei denn Ihr out.json ist im gleichen Ordner als die Datei, die versucht, es zu öffnen, Sie erhalten diesen Fehler.

Besser noch, wenn Sie Objekte in einer Datei wie oben für mehrere Ihrer Apps haben, oder nur um Ihr Projekt sauber zu säubern, würde ich einen/Fixtures/Ordner in Ihre App einschließen und alle .json Dateien dort hineinlegen . Sie haben dann eine einfache Möglichkeit, die Wurzel dieser Dateien (können, schließen Sie es in Ihrem settings.py Datei) abrufen - so etwas wie:

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

Sie können dann nur

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

in Ihrem Projekt verwenden

Verwandte Themen