我正在使用Django(在这里编写一个脚本)。我正在尝试解析JSON文件并将其添加到我创建的模型中。但是,我得到了这个奇怪的错误,我无法弄清楚!
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "json_api.settings"
import json
from api.models import User_details
with open('./static/test.json') as data_file:
data = json.load(data_file)
r = User_details.objects.create(uid=int(data["User"]["id"]) ,
premium=bool(data["User"]["premium"]) ,
last_filled=data["LastFilled"] ,
trip_mode=data["Trip_Mode"] ,
odometer=int(data["Params"]["Odometer"]),
fuel=int(data["Params"]["Fuel"]),
tirep_fl=int(data["Params"]["Fuel"]["frontLeft"]),
tirep_fr=int(data["Params"]["TireP"]["frontRight"]),
tirep_bl=int(data["Params"]["TireP"]["backLeft"]),
tirep_br=int(data["Params"]["TireP"]["backRight"]))
r.save()
JSON文件:
{
"User": {
"id": "123456678923",
"premium": "False"
},
"LastFilled": "16/02/02-00:45:32",
"Trip_Mode": "Disabled",
"Params": {
"Odometer": "12345",
"Fuel": "0.78",
"TireP": {
"frontLeft": "32",
"frontRight": "29",
"backLeft": "24",
"backRight": "26"
}
}
}
错误:
(env) saru95 $ python import_data.py
File "import_data.py", line 19
r.save()
^
SyntaxError: invalid syntax
编辑:
添加缺失的括号并运行python import_data.py
后,我收到以下错误:
(env) saru95 $ python import_data.py
Traceback (most recent call last):
File "import_data.py", line 4, in <module>
from api.models import User_details
File "/Users/sarthakmunshi/Desktop/django-cookbook/json_api/api/models.py", line 3, in <module>
class User_details(models.Model):
File "/Users/sarthakmunshi/Desktop/django-cookbook/env/lib/python2.7/site-packages/django/db/models/base.py", line 94, in __new__
app_config = apps.get_containing_app_config(module)
File "/Users/sarthakmunshi/Desktop/django-cookbook/env/lib/python2.7/site-packages/django/apps/registry.py", line 239, in get_containing_app_config
self.check_apps_ready()
File "/Users/sarthakmunshi/Desktop/django-cookbook/env/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
答案 0 :(得分:1)
您错过了来自int
的{{1}}来电以及所有四个fuel
值的近距离内容。
答案 1 :(得分:0)
你忘记了很多结束括号:
fuel=int(data["Params"]["Fuel"]),
tirep_fl=int(data["Params"]["Fuel"]["frontLeft"]),
tirep_fr=int(data["Params"]["TireP"]["frontRight"]),
tirep_bl=int(data["Params"]["TireP"]["backLeft"]),
tirep_br=int(data["Params"]["TireP"]["backRight"])
答案 2 :(得分:0)
我通过替换
解决了这个问题import os
os.environ["DJANGO_SETTINGS_MODULE"] = "json_api.settings"
通过
from json_api.wsgi import *
其中json_api
是我的项目名称。谢谢你的帮助!