src=http___blog.robomongo.org_content_images_2017_02_set.png&refer=http___blog.robomongo.jpg

为什么要写这个函数?

回想MongoDB插入数据是如此的简单,而MySQL则需要构造SQL语句,主要是字段数量是固定的,有了新的字段,就需要加入对应的项和参数,非常的麻烦。

当我们把Mongo的数据同步到MySQL时,可以用到如下函数。

为什么不用ORM工具呢?

大而重,而且存在学习成本。

函数长这样

def dict2sql(table_name: str, table_data: dict):
    sql_express = f"INSERT INTO `{table_name}` ("
    for key in table_data.keys():
        sql_express += f"`{key}`, "
    sql_express = sql_express.rstrip(", ")
    sql_express += ") VALUE ("
    for val in table_data.values():
        sql_express += f"'{val}', "
    sql_express = sql_express.rstrip(", ")
    sql_express += ")"
    return sql_express

使用如下

接受两个参数:table_name:表名,table_data:要插入的此行数据

mydata = {'name': 'austin', 'age': 18, 'address': 'Copenhagen'}

print(dict2sql("person", mydata))

输出如下:

INSERT INTO `person` (`name`, `age`, `address`) VALUE ('austin', '18', 'Copenhagen')

小技巧,勿喷。

用于将Mongo的数据转存到MySQL还是挺方便的,至少不用再学习框架和构造SQL语句了。

仅有一条评论

  1. 欢迎各位留言

添加新评论