小编kir*_*uru的帖子

如何使用sqlalchemy将数据加载到现有数据库表中?

我从excel文件加载数据并组织为python dict,其中每个键都是数据库表名,其值被定义为字典列表(行)

system_data = {table_name1:[{'col_1':val1, 'col2': val1...},
                            {'col_1':val2, 'col2': val2..}..],     
               table_name2:[{},{}..],[{},{}..]..}
Run Code Online (Sandbox Code Playgroud)

在从中挑选table_names键和值时,需要将此数据加载到现有数据库中system_data.

另外,我使用ordered_table列表,我按特定顺序创建,以避免在加载数据时出现FK问题.

这是代码(我尝试过的1000个版本之一):

from sqlalchemy import create_engine
from sqlalchemy.sql import insert

def alchemy_load():
    system_data = load_current_system_data()
    engine = create_engine('mysql+pymysql://username:password@localhost/my_db')
    conn = engine.connect()
    for table_name in ordered_tables:
        conn.execute(insert(table_name, system_data[table_name]))
    print("System's Data successfully loaded into Database!")
Run Code Online (Sandbox Code Playgroud)

此函数会产生以下错误:

"TypeError: 'method' object is not iterable"
Run Code Online (Sandbox Code Playgroud)

我几乎整天都浪费在这些东西上(((

所有在线示例都描述了当用户使用MetaData并创建自己的表时的情况......没有任何关于如何将数据实际添加到现有表中的信息.

使用"数据集"库可以解决我的问题.

代码:

import dataset

def current_data():
    db = dataset.connect(url='mysql+pymysql://user:pass@localhost/my_db')
    system_data = load_current_system_data()

    for table_name in ordered_tables:
        db[table_name].insert_many(system_data[table_name])
    print("System's Data successfully loaded into …
Run Code Online (Sandbox Code Playgroud)

python mysql dictionary sqlalchemy

6
推荐指数
1
解决办法
5260
查看次数

添加附件到Slackbot

我正在尝试通过他们的API为松弛消息添加附件.我正在使用他们推荐的python包装器.我可以发送和接收基本消息但是当我尝试以2个按钮的形式添加附件时,它会失败.我已经做了一个松散的应用程序,并将他们在API中声明的机器人链接起来.我仔细检查了API,无法弄清楚发生了什么.

def process_message(message, channel):
    intro_msg = json.loads('{
                      "text": "What would you like to do?",
                      "attachments": [
                        {
                          "text": "Choose an action",
                          "fallback": "You are unable to choose an option",
                          "callback_id": "lunch_intro",
                          "color": "#3AA3E3",
                          "attachment_type": "default",
                          "actions": [
                            {
                              "name": "enroll",
                              "text": "Enroll",
                              "type": "button",
                              "value": "enroll"
                            },
                            {
                              "name": "leave",
                              "text": "Leave",
                              "type": "button",
                              "value": "leave"
                            }
                          ]
                        }
                      ]
                    }')
    r = sc.api_call("chat.postMessage", channel=channel, attachments=intro_msg)
Run Code Online (Sandbox Code Playgroud)

回应只是 {u'ok': False, u'error': u'no_text'}

python bots slack-api slack

5
推荐指数
1
解决办法
5814
查看次数

Git - 旧提交中分支之间的差异

我有这个:

branch: commit 1, commit 2, 3,4
master: commit 1, commit 2, 3,4,5,6,7
Run Code Online (Sandbox Code Playgroud)

你怎么能在分支之后commit 2(在那个历史点上)和主分支之间进行区分commit 3

git diff branch git-diff git-commit

3
推荐指数
1
解决办法
2582
查看次数

标签 统计

python ×2

bots ×1

branch ×1

dictionary ×1

diff ×1

git ×1

git-commit ×1

git-diff ×1

mysql ×1

slack ×1

slack-api ×1

sqlalchemy ×1