将Python class变成简单的SQL语句

起因是要拼装一个insert语句,然后字段又特别多,超过了50个,于是写了一个简单的方法,传入一个对象,根据这个对象的类class,找出所有可公开访问的int、float、str变量名及变量值,合成一条insert语句。

def genInsertSqlByClass(obj: object, tableName: str)->str:
    '''
    传一个对象、需要插入的表名
    :param obj: 对象
    :param tableName: 表单名称
    :return: 组装好的sql insert语句
    '''
    p1 = 'insert into `' + tableName + '`'
    p2 = ''
    p3 = ''
    rlk = []

    # 从对象obj中获取所有成员变量名
    for i in obj.__dir__():
        if i.find('_', 0, 1) == -1:
            rlk.append(i)

    # 遍历所有成员变量,如果值不是方法的,则加到sql语句中,注意这里只添加了int、float、str三种类型,如需识别date日期或时间还需再改进。
    for k in range(len(rlk)):
        v = obj.__getattribute__(rlk[k])
        if callable(v) == False:
            p2 = p2 + '`' + rlk[k] + '`'
            if isinstance(v, int) or isinstance(v, float):
                p3 = p3 + str(v)
            elif isinstance(v, str):
                p3 = p3 + '\'' + v.replace("'", "\\'") + '\''
            p2 = p2 + ','
            p3 = p3 + ','

    # 去掉最后一个逗号
    p2 = p2[:len(p2) - 1]
    p3 = p3[:len(p3) - 1]

    # 合成sql语句
    sql = p1 + ' (' + p2 + ') values ' + '(' + p3 + ')'
    print(sql)
    return sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些基本的步骤: 1. 首先,您需要确定您要从哪个API获取数据,以及API的请求URL和参数。您可以在API提供商的文档中找到这些信息。 2. 然后,您需要使用Python中的requests库向API发送请求并获取响应。您可以使用以下代码来发送请求并获取响应: ``` import requests response = requests.get(api_url, params=params_dict) ``` 其中,`api_url`是API的请求URL,`params_dict`是包含请求参数的字典。 3. 接下来,您需要将响应数据转换为Python中的数据结构,如字典或列表。您可以使用以下代码来转换JSON格式的响应数据: ``` import json data_dict = json.loads(response.text) ``` 其中,`response.text`是响应数据的JSON格式字符串。 4. 然后,您需要连接到SQL Server数据库并将数据写入表中。您可以使用Python中的pyodbc库来连接到SQL Server数据库,并使用以下代码将数据写入表中: ``` import pyodbc # 连接到SQL Server数据库 conn = pyodbc.connect('DRIVER={SQL Server};SERVER=server_name;DATABASE=db_name;UID=user_id;PWD=password') # 创建游标 cursor = conn.cursor() # 插入数据 for item in data_dict: cursor.execute("INSERT INTO table_name (column1, column2, ...) VALUES (?, ?, ...)", item['value1'], item['value2'], ...) # 提交事务 conn.commit() # 关闭连接 cursor.close() conn.close() ``` 其中,`server_name`是SQL Server数据库服务器的名称,`db_name`是数据库的名称,`user_id`和`password`是连接数据库所需的用户名和密码,`table_name`是要将数据写入的表的名称,`column1`、`column2`等是要写入的表的列名,`item['value1']`、`item['value2']`等是要写入表的值。 以上就是利用Python通过API获取数据并将其写入SQL Server数据库的基本步骤。当然,具体实现可能会因为API和数据库的不同而有所不同,还需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值