2017-01-08 7 views
0

これまでのフォームから入力を受け取り、その値をjsonファイルに追加できる基本的なWebサイトを作成しています。また、jsonデータを "jsonページ"に表示することもできます。これは私が行う(json.dump(myGetJsonStuffFunc)、indent = 4、sort_keys = True)これは、サイトのAPIの部分に不思議に動作します。フラスコを使用してjsonからhtmlに抽出する

私がやりたいことは、その情報を取得して、ユーザーがより良い概観を得ることができる「通常の」htmlページで表示することです。

現在、私は変数にキーの値を設定することを望むSetValuesToHtmlという関数を持っています。これはrender_template呼び出しの前に私のルートで呼び出されます。しかし、変数とそれに格納されている情報にアクセスする方法を理解できません。

これは私の完全なviews.pyです:http://pastebin.com/cneKMtZf

問題(?私は願っています)ですこれら:

@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 

本当に助けを求めてどこに行くかわからないので、私はあなたに手を差し伸べる。私は喜んでまっすぐ答えをとるだろうが、幸いなことに、私は何を読み上げるべきかについての指示を取るだろう。

は、私は '技術者' [データ、最後の数行は、あなたのコードの残りの部分によると

return data['techs']['endpos'] 

代わりの

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

する必要があります疑うあなた

+0

インデントに問題があります。 'with open ... 'は関数本体の一部ではありません。このインデントが実際のコードで正しい場合でも、 'return'は最初の繰り返しで関数を終了させるため、' for'ループで 'return'を使うことはできません。 – roganjosh

+0

他にもいくつかあります: 'with'を使って開いたファイルに対して' close() 'を呼び出す必要はありません。また、私はあなたのコードのいくつかの点で 'pass'の目的関数を理解していません。しかし、インデントが自分のコードと一致するように質問を編集してください。 – roganjosh

+0

私はコードを貼り付けたときに、それが私のideにあるように自動整列していないことに気付かなかった。謝罪します! クローズについては、一貫性を確保するために、開いた後にファイルを常に閉じるように指示されました。私は問題に遭遇していないので、私はそれが働いたと仮定しました。 私は教えられたことは、ブロックを離れて移動しなければならないことを機能に知らせることです。反復または移動のときに戻る。 返品は気に入っていませんでした。 – Berimbolinho

答えて

0
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 

ありがとうございました]は辞書であり、オブジェクトではなく、他の場所で使用されるキーは 'endpos'であり、 'endposition'ではありません。

+0

私はこれを試しましたが、単に新しいエラーが発生しました。しかし、これで読み上げます。あなたの時間をありがとう。 – Berimbolinho

+0

問題ありません。私はあなたがそれを理解して欲しい。 –

関連する問題