我定期从API中获取一些数据,并希望将JSON数据存储到数据库中以便以后访问和使用.
从API,我每次都会在此示例中获取数据:
'{"data": {"cursor": null, "files": {"nodes": [{u'code': u'BOPhmYQg5Vm', u'date': 1482244678,u'counts': 2, u'id': u'1409492981312099686'}, {u'code': u'g5VmBOPhmYQ', u'date': 1482244678,u'counts': 5, u'id': u'1209968614094929813'}]}}}'
Run Code Online (Sandbox Code Playgroud)
我可以json_data = json.loads(above_data)然后获取,nodes因为nodes_data = json_data["data"]["files"]["nodes"]它给出了一个列表nodes.
我想将此nodes数据存储到类型的DB列data = Column(db.Text)中Text.每次节点列表中将有10-15个值.
我该如何存储?有多个nodes,我需要它的方式,以后我可以追加/添加更多我的数据库中nodes已有的data列.
虽然我想这样做json.loads(db_data_col),我得到有效的json,并可以遍历所有内容nodes数据并在以后使用.
我对如何存储在db中以及稍后以有效的json格式访问感到困惑.
编辑1:使用Sqlite进行测试.以后可以使用PostgresSQL.Text列的类型是要点.
我正在尝试使用Celery + Redis + Flask运行一些后台作业。
我的应用程序结构为:
myapp/
celery_worker.py
manage.py
myapp/
__init__.py
app.py
bot/
__init__.py
tasks.py
accounts/
views.py
Run Code Online (Sandbox Code Playgroud)
我将芹菜初始化为app.py为:
celery = Celery('tasks', include=['bot.tasks'])
def create_app(config=None, app_name=None, blueprints=None):
# more Celery and other config here like celery.conf.update()
Run Code Online (Sandbox Code Playgroud)
然后开始工作 celery_worker.py
from myapp import create_app, celery
app = create_app()
app.app_context().push()
Run Code Online (Sandbox Code Playgroud)
tasks.py 包含
from myapp import celery
@celery.task(name='my_task_bot')
def my_task_bot():
# pass
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试通过以下导入将任务从task.py访问到account / views.py时:
from ..bot.tasks import my_task_bot
Run Code Online (Sandbox Code Playgroud)
我ImportError: cannot import name celery出错了。
无论如何,我尝试在哪里导入任务,都会出现此错误。该celery实例似乎是在app.py中初始化的实例,但未导入。
PS:我遵循的是https://github.com/ezequielo/flask_celery_exp仓库的模式,它可以正常工作。但不是我的应用程序。
编辑:
这是回溯:
Traceback …Run Code Online (Sandbox Code Playgroud)