如何将 JSON 文件导入 Django 数据库?

Posted

技术标签:

【中文标题】如何将 JSON 文件导入 Django 数据库?【英文标题】:How can I import JSON file to Django database? 【发布时间】:2014-12-06 17:07:22 【问题描述】:

我正在学习 django 和 javascript。我有一个具有以下语法的 json 文件:

"business_id": "JwUE5GmEO-sH1FuwJgKBlQ", "full_address": "6162 US Highway 51\nDe Forest, WI 53532", "hours": , "open": true, "categories": ["Restaurants"], "city": "De Forest", "review_count": 26, "name": "Pine Cone Restaurant", "neighborhoods": [], "longitude": -89.335843999999994, "state": "WI", "stars": 4.0, "latitude": 43.238892999999997, "attributes": "Take-out": true, "Good For": "dessert": false, "latenight": false, "lunch": true, "dinner": false, "breakfast": false, "brunch": false, "Caters": false, "Noise Level": "average", "Takes Reservations": false, "Delivery": false, "Ambience": "romantic": false, "intimate": false, "touristy": false, "hipster": false, "divey": false, "classy": false, "trendy": false, "upscale": false, "casual": false, "Parking": "garage": false, "street": false, "validated": false, "lot": true, "valet": false, "Has TV": true, "Outdoor Seating": false, "Attire": "casual", "Alcohol": "none", "Waiter Service": true, "Accepts Credit Cards": true, "Good for Kids": true, "Good For Groups": true, "Price Range": 1, "type": "business"

我想将它导入 django 数据库。我试过了:

def import_db(request):
    f = open('business_out.json', 'r')
    for jsonline in f:
        #yield json.loads(jsonline)
        data = serializers.serialize("json", jsonline)
        print data["business_id"]

localhost://import_db 的这一行出现错误:

data = serializers.serialize("json", jsonline) 
Uncaught TypeError: Cannot read property 'key-preview' of undefined klippy.js:163Class.keyup klippy.js:163wrapper.extend.$owner mootools-core.js:1367defn mootools-core.js:3970

【问题讨论】:

错误是什么?这对回答您的问题非常有帮助。 【参考方案1】:

serializers.serialize 将模型数据“翻译”为 JSON,但您需要反之亦然 - 将 json 加载到 DB。

你需要这样的东西:

with open('business_out.json') as f:
    data = json.load(f)

然后你会得到一个带有数据的dict,你可以用它来操作。

【讨论】:

感谢为具有单个对象的文件工作。但对同一对象的多行有效。 这将适用于所有包含 json 的文件,之后您可以根据需要解析数据。

以上是关于如何将 JSON 文件导入 Django 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

不支持按文件名导入

将数据从 JSON 导入 django AttributeError:“WSGIRequest”对象没有属性“数据”

使用 JSON 的 Django 导入向导

如何将json数据导入到Hive中

Django加载本地json文件

如何使用 Django ORM 将 JSON 文件中的数据加载到 MySQL 实例中?