• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Python把MySQL查询转为Insert语句

Python闲聊 彭东稳 7年前 (2017-12-13) 28188次浏览 已收录 2个评论

下面贴出利用Python把MySQL查询结果转换为Insert语句,当然你使用一些客户端工具更方便了。但是有些需求没法使用工具搞了,比如我要把查询结果立马插入到另一个数据库中,并且查询结果中有些信息需要变更处理,这种使用脚本就很快了。

脚本执行结果示例如下:

可以看到字符型是字符型,NULL还是NULL,数值型还是数值型。这主要依赖于下面这个join。

把查询结果转换为字符串,并且会判断其类型。如果是字符串、unicode(Python 2输出还是unicode标识,Python 3统一为字符型)、时间都会加上分号,如果是数值型就原型显示(这些数据的类型在查询结果输出时就会有标识)。 如果觉得在join里面不好理解,也可以转换为下面这个格式:

脚本很简单,有同样需求的可以加以改造即可。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (0)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 在判断是否为字符串还是double类型 可以选择用json格式化并且用如下格式: class CJsonEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj, date): return obj.strftime('%Y-%m-%d') elif isinstance(obj, Decimal): return str(obj) else: return json.JSONEncoder.default(self, obj) 循环是使用json json.loads(json.dumps(i, cls=CJsonEncoder, ensure_ascii=False, sort_keys=False))
    dbdao2018-01-05 10:43 Windows 10 | Chrome 60.0.3112.90
    • 这样只会更复杂感觉,最终还是要拼接成字符串。
      彭东稳2018-01-08 12:03 Mac OS X | Chrome 63.0.3239.84