小编nml*_*nml的帖子

在python中将JSON存储到数据库中

我定期从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列的类型是要点.

python json

7
推荐指数
2
解决办法
9532
查看次数

ImportError:无法导入名字芹菜

我正在尝试使用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)

python celery flask

2
推荐指数
1
解决办法
6008
查看次数

标签 统计

python ×2

celery ×1

flask ×1

json ×1