栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

leetcode测试用例转化数据库表

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode测试用例转化数据库表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言一、python脚本

1.代码2.不足3.效果 总结


前言

leetcode刷题测试用例不能在本地形成表格,不方便自己写的sql进行测试,不能获得阶段性sql结果,因而写了一个小脚本,将leetcode中的测试用例自动生成测试表。


一、python脚本 1.代码
import json
import pymysql
import re

content = eval(input("请输入:"))
dict1 = eval(json.dumps(content))
host = '127.0.0.1'
user = 'root'
password = '123456'
dict2 = []
list1 = []
for i in dict1.keys():
    database_name = i
    break

for i in dict1.values():
    dict2.append(i)

for j in dict2[0].keys():
    list1.append(j)
table = list1[0]

for i in dict2[0].values():
    list3 = i


for j in dict2[1].values():
    dict4 = j


config = {'host': '127.0.0.1',  # 默认127.0.0.1
          'user': 'root',  # 用户名
          'password': '123456',  # 密码
          'port': 3306,  # 端口,默认为3306
          'database': 'db_vocation',  # 数据库名称
          'charset': 'utf8'  # 字符编码
          }

a = 1
con = pymysql.connect(**config)
sql1 = f'drop database {database_name};'
sql2 = f"create database {database_name} charset='utf8'"
cursor = con.cursor()
if a == 1:
    try:
        cursor.execute(sql1)
        con.commit()
    except:
        a += 1
    else:
        a +=1
if a == 2:
    cursor.execute(sql2)
    con.commit()
    a += 1
sql = 'use headers'
cursor.execute(sql)
con.commit()
sql3 = "create table {0} (`linshi` int(10));".format(table)
cursor.execute(sql3)
con.commit()
print('创建成功')
for i in list3:
    sql4 = f"alter table {table} add {i} varchar(20);"
    cursor.execute(sql4)
for j in dict4:
    for index, world in enumerate(j):
        try:
            if re.findall("[0-9]{4}-[0-9]{2}-[0-9]{2}", world):
                sql5 = f"alter table {table} modify column {list3[index]} datetime;"
                cursor.execute(sql5)
        except:
            continue
        else:
            break
sql6 = f"alter table {table} drop column `linshi`;"
cursor.execute(sql6)
con.commit()
for i in dict4:
    data = tuple(i)
    sql7 = f"insert into {table} values {data};"
    cursor.execute(sql7)
    con.commit()
con.close()

2.不足

建表数据类型,只对时间的字段进行了处理处理成datetime,其余一律设置成了varchar(20),有长度需求可以更改;

3.效果

leetcode用例:
{“headers”: {“Weather”: [“id”, “recordDate”, “temperature”]}, “rows”: {“Weather”: [[1, “2015-01-01”, 10], [2, “2015-01-02”, 25], [3, “2015-01-03”, 20], [4, “2015-01-04”, 30]]}}

运行前:

运行中:

运行后:

总结

这里只针对mysql数据库,其他数据库可更改数据库连接驱动。
时光如水,人生逆旅矣。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738863.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号