2017-04-18 5 views
0

私はJSONファイルを持っていますので、それを繰り返してDjangoを使って情報を表示したいと思います。どのようにすればいいのですか?通常のようにモデルを設定する必要がありますか?このデータをSQLiteを使用してデータベースモデルに転送するにはどうすればよいですか?DjangoでJSONファイルを表示する方法

私は似たstackoverflowの質問にこのコードを見つけましたが、私は、ユーザーがデータを表示できるようにHTTPResponseは経由などのデータを表示する方法がわからない:

import json 

json_data = open('/static/prices.json') 
data1 = json.load(json_data) // deserialises it 
data2 = json.dumps(json_data) // json formatted string 

json_data.close() 
+0

を適用するあなたはJSONデータを解析するかだけを表示したいですか?そして、あなたはこれをフォーマットした、あるいは単純なjsonとして表示したいですか? – dentemm

+0

私はどのような解析が理解できません。どういう意味ですか?電話番号は、正面に0を書いてフォーマットする必要があります。他のすべてはうまく見えます。 –

答えて

0

オプション1:使用は

をloaddataの

Djangoは、コマンドを使用して、json | xml | ..のデータをモデルに「転送」するコマンドを実行しました。 はyourapp/fixturesや再フォーマットにファイルprices.jsonを移動し、loaddataを使用するには:

[{ 
    "model": "yourapp.yourmodel", 
    "pk": 1, 
    "fields": { 
     "name": "Item A", 
     "price": 1 
    } 
}, { 
    "model": "yourapp.yourmodel", 
    "pk": 2, 
    "fields": { 
     "name": "Item B", 
     "price": 2 
    } 
}] 

はその後のコマンドを実行します。python manage.py loaddata prices

オプション2:使用の移行

場合は、あなたのファイル形式を変更したくありません、空の移行を作成する

python manage.py makemigrations yourapp --empty

新しい移行ファイルで

、このようなinsert_price、何かを追加します。最後に

# -*- coding: utf-8 -*- 
from __future__ import unicode_literals 

import json 
from django.db import models, migrations 
from yourapp.models import Model 


def insert_price(apps, schema_editor): 
    with open('/path/to/prices.json') as data_file:  
     data = json.load(data_file) 

    for item in data: 
     # Update, map field for item to make it match with Model 
     # item['description'] = 'Just kidding' 
     Model.objects.create(**item) 

class Migration(migrations.Migration): 

    dependencies = [ 
     ('yourapp', '000_previous_depends'), 
    ] 

    operations = [ 
     migrations.RunPython(insert_price), 
    ] 

を、その移行python manage.py migrate

関連する問題