一个把json数据批量插入SQL SERVER 的Python脚本

原创 2017年08月24日 11:37:30

这是一个把json数据批量插入SQL SERVER 的Python脚本
本文参考了pymssql的官方文档
http://www.pymssql.org/en/stable/pymssql_examples.html


#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import pymssql
import json
 
DB_SETTINGS = {'host''127.0.0.1',
               'port''1433',
               'user''sa',
               'password''password',
               'database''test'}
 
class SQLSERVER:
    """database"""
 
    def __init__(self, settings_):
        """initial db"""
        self.conn = pymssql.connect(**settings_)
        self.cur = self.conn.cursor()
 
    def exec_many(self, sql_str, data_):
        self.cur.executemany(sql_str, data_)
        self.conn.commit()
 
    def exec_sql(self, sql_str):
        self.cur.execute(sql_str)
        ret = self.cur.fetchall()
        return ret
 
    def close(self):
        self.cur.close()
        self.conn.close()
 
 
json_data = """
[
  {
    "Indicator":"Life expectancy at birth (years)",
    "PUBLISH STATES":"Published",
    "Year":1990,
    "WHO region":"Europe",
    "World Bank income group":"High-income",
    "Country":"Andorra",
    "Sex":"Both sexes",
    "Display Value":77,
    "Numeric":77.00000,
    "Low":"",
    "High":"",
    "Comments":""
  },
  {
    "Indicator":"Life expectancy at birth (years)",
    "PUBLISH STATES":"Published",
    "Year":2000,
    "WHO region":"Europe",
    "World Bank income group":"High-income",
    "Country":"Andorra",
    "Sex":"Both sexes",
    "Display Value":80,
    "Numeric":80.00000,
    "Low":"",
    "High":"",
    "Comments":""
  },
  {
    "Indicator":"Life expectancy at age 60 (years)",
    "PUBLISH STATES":"Published",
    "Year":2012,
    "WHO region":"Europe",
    "World Bank income group":"High-income",
    "Country":"Andorra",
    "Sex":"Female",
    "Display Value":28,
    "Numeric":28.00000,
    "Low":"",
    "High":"",
    "Comments":""
  },
  {
    "Indicator":"Life expectancy at age 60 (years)",
    "PUBLISH STATES":"Published",
    "Year":2000,
    "WHO region":"Europe",
    "World Bank income group":"High-income",
    "Country":"Andorra",
    "Sex":"Both sexes",
    "Display Value":23,
    "Numeric":23.00000,
    "Low":"",
    "High":"",
    "Comments":""
  }
]
"""
 
db = SQLSERVER(DB_SETTINGS)
 
items = json.loads(json_data)
 
# with open(r'd:\temp\source.json', 'r') as json_file:    # 如果从文件中载入数据
#    items = json.load(json_file)
 
fields = ("Indicator""PUBLISH STATES""Year""WHO region""World Bank income group",
          "Country""Sex""Display Value""Numeric""Low""High""Comments")
 
sql = 'INSERT INTO table_name VALUES (%s, %s, %d, %s, %s, %s, %s, %d, %f, %s, %s, %s);'
 
data = [tuple(item[field] for field in fields) for item in items]
db.exec_many(sql, data)
 
db.close()


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQL SERVER 批量数据插入方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量...

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量...

SQL Server 2012中快速插入批量数据的示例及疑惑

SQL Server 2008中SQL应用系列--目录索引今天在做一个案例演示时,在SQL Server 2012中使用Insert语句插入1万条数据,结果遇到了一个奇怪的现象,现将过程分享出来,以供...

SQL Server 批量插入数据的两种方法

SQL Server 批量插入数据的两种方法 (此文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/18/43600...

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量...

SQL Server 和ORACLE 批量插入数据的两种方法

SQL Server 批量插入数据的两种方法  在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致...

SQL Server 批量插入数据的两种方法

初中学历 + 记忆力差的我只能去点点滴滴的记录着开发中遇到的问题!

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量...

【SQL Server 批量插入数据】

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)