无法从DJANGO中的json文件导入json对象

时间:2017-02-14 08:52:20

标签: python json django

我无法在Django中从json文件创建json对象。这是代码。 我有一个名为out.json的文件,里面有json对象。我想发送这些对象作为响应。我收到错误说

/ projectboard / random中的FileNotFoundError [Errno 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)

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')
]

3 个答案:

答案 0 :(得分:1)

out.json文件应与manage.py文件位于同一目录

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

    out.json

答案 1 :(得分:1)

将out.json移动到目录 /projectboard/out.json

out.json必须与views.py位于同一目录中,或者与调用open(file)的py文件位于同一目录中。如果您正在使用Linux或OS X,请导航至/projectboard文件夹并键入ls以列出要仔细检查的文件out.json位于正确的路径中。否则在Windows计算机上使用dir

答案 2 :(得分: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>

整个项目