Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用flask将json提取到html中_Python_Json_Flask - Fatal编程技术网

Python 使用flask将json提取到html中

Python 使用flask将json提取到html中,python,json,flask,Python,Json,Flask,我正在写一个基本的网站,到目前为止,它可以从表单中获取输入并将值添加到json文件中。我还可以在“json页面”中显示json数据。对于我所做的(json.dump(mygetjsonstuffunc),indent=4,sort_keys=True),这对站点的API部分非常有用 我还想做的是检索这些信息,并将其显示在“常规”html页面中,用户可以在其中获得更好的概述 到目前为止,我有一个名为SetValuesToHtml的函数,我希望它能为变量设置一个键的值,这是在render_模板调用之

我正在写一个基本的网站,到目前为止,它可以从表单中获取输入并将值添加到json文件中。我还可以在“json页面”中显示json数据。对于我所做的(json.dump(mygetjsonstuffunc),indent=4,sort_keys=True),这对站点的API部分非常有用

我还想做的是检索这些信息,并将其显示在“常规”html页面中,用户可以在其中获得更好的概述

到目前为止,我有一个名为SetValuesToHtml的函数,我希望它能为变量设置一个键的值,这是在render_模板调用之前在我的路径中调用的。但我不知道如何访问变量或其中存储的信息

这是我的完整视图.py:

问题(我希望?)是:

@app.route('/collection', methods = ['GET'])
def collectionH():
    data = SetValuesToHtml()

return render_template(
    'collection.html',
    title='This is our collection'
    )
以及功能:

def SetValuesToHtml():
    checkData()


    with open(filename+".json", "r") as infile:
        data = json.load(infile)
        infile.close()
        pass

    for tech in data['techs']:
        return data.endposition
    pass
我不知所措,真的不知道去哪里寻求帮助,因此我向你求助。我很乐意接受一个直截了当的回答,但同样高兴的是,我会就应该阅读的内容给出指导

多谢各位

def SetValuesToHtml():
    checkData()


    with open(filename+".json", "r") as infile:
        data = json.load(infile)
        infile.close()
        pass

    for tech in data['techs']:
        return data.endposition
        pass
我想最后几行应该是

    return data['techs']['endpos']
而不是

    for tech in data['techs']:
        return data.endposition
        pass

根据代码的其余部分,data['techs']是一个dict,而不是一个对象,其他地方使用的键是'endpos',而不是'endposition'。

缩进有问题<代码>打开…不是功能体的一部分。即使此缩进在实际代码中是正确的,也不能在
for
循环中使用
return
,因为
return
将在第一次迭代时终止函数。还有两件事:不需要对使用
with
打开的文件调用
close()
。另外,我不理解
pass
在代码中的几个点的预期功能。但请编辑您的问题,以确保缩进匹配您自己的代码。我没有注意到,当我粘贴代码时,它没有自动对齐ide中的方式。我道歉!至于关闭,我被告知总是在打开文件后关闭文件,以确保一致性。因为我没有遇到问题,所以我认为这是可行的。我学到的方法是让函数知道它已经离开了块,应该继续。迭代时返回或继续。我不知道返回结果是这样的。使用了
with
,这样您就不必担心
close()
,因为一旦退出紧随其后的缩进块,它会自动关闭文件。当前,
对于数据中的技术['techs']:
不是
SetValuesToHtml()
的一部分,因为它没有缩进到功能块的一部分,这意味着
返回数据。endposition
没有意义。您不需要通过
pass
来结束函数,该函数由缩进和
return
确定。我知道这与你的主要问题无关,但这会使确定问题变得复杂。谢谢!我再次编辑了我的问题,使之与缩进正确对应。我尝试了一下,但只得到了一个新的错误。不过我会仔细阅读的。谢谢你抽出时间,没问题。我希望你能弄明白。