所以,在我的view.py下面(不太合适)我想使用下面的代码将d.json存储在statics subfloder下的数据文件夹中。如何告诉Djson转储这个d.json。
MYAPP>静力学>数据> d.json
def getjson(request)
import ujson as json
import pandas
import numpy as np
df = pandas.DataFrame({
"time" : [1,2,3,4,5],
"temp" : np.random.rand(5)
})
d = [
dict([
(colname, row[i])
for i,colname in enumerate(df.columns)
])
for row in df.values
]
jdata = json.dumps(d)
return jdata
我在这里失踪了什么?建议会很感激。
我的目标是最终在另一个函数中调用此函数来执行其他操作,我可以从视图中的其他函数调用此函数吗?
之类的东西def anotherfunction(request):
getjson()
# do something else
return
答案 0 :(得分:1)
查看只是一个Python函数,它将 HttpRequest 作为其第一个参数,并返回 HttpResponse 的实例
所以def getjson(request):
只是function
,不是 view
,因为它不会返回 HttpResponse 的实例, 是您可以从其他功能或视图中调用它(功能)
您可以使用这样的smth将数据转储到指定位置:
import json, os
from django.core.urlresolvers import resolve
from your_project_dir.settings import BASE_DIR
local_file_path = '{0}/{1}/{2}'.format(resolve(request.path).app_name, 'statics', 'd.json')
global_file_path = os.path.join(BASE_DIR, local_file_path)
with open(global_file_path, 'w') as outfile:
json.dump(data, outfile)