入门Python(数据库操作及网络访问)

前沿

Python的强大已经在AI领域早已展现,作为一个高级语言,它的简洁性无语言表,爬取一个网页只需要一行代码就可以搞定,为我们节约了大量的编码工作

门槛

当然,只要你有编程经验和懂点计算机的原理,学习任何一门计算机语言都会很快。就Python来说,它本身的基本语法并不难,只要你注意代码的缩进,再会使用几个常用的函数,就可以基本入门Python了。如果你没有编程经验,我相信只要你肯花时间,学习它也不会花多少时间的

安装

可以参考https://www.liaoxuefeng.com/,当然,这个只是python的基本包的安装;如果你需要其他库的话,请注意python2.x和python3.x的区别,它们不兼容,因此遇到坑的时候,就多百度,谷歌一下了(我就是为了安装pymssql这个库,花费了很多时间,主要是本机的工具版本各种不兼容)

使用

基本语法我就不班门弄斧了,很简单。下面就是我写了一个简单的脚本

实战

目的:将数据库中的地址信息中有问题的经纬度,转换成正确的经纬度(输入地址,获取经纬度,也就是地理编码)

步骤:

1.读取Sqlserver中的有问题行的数据

2.通过高德的地理编码restful接口,获取正确的经纬度

3.最后,正确的经纬度更新到数据中

import pymssql
import requests
import json


#Judge the String is "String"
def is_String(s):
    try:
        float(s)
        return False
    except ValueError:
        pass 
    try:
        import unicodedata
        unicodedata.numeric(s)
        return Flase
    except (TypeError, ValueError):
        pass
    return True
#Get AddressInfo from AMap
def getLonLat(s):
    url = 'https://restapi.amap.com/v3/geocode/geo'
    url = url + '?address='+s
    url = url + "&output=json&key=填写你的key"
    response = requests.get(url)
    obj=json.loads(response.text)
    return obj.get("geocodes")[0].get('location')


#Connect SqlServer
conn = pymssql.connect(host="填写你的IP",port=1433,user="用户名",password="数据库密码",
                       database="数据库名称",charset="utf8",tds_version="7.0")
cursor = conn.cursor()
# execute The Query
cursor.execute("SELECT scanId,longitude,ScanAddress FROM ScanData")
row = cursor.fetchone()
sqlArr = []
#下面这个i,不用管它,拿来计数的,因为我不想等太久了,只想处理1000次以下就可以了
i = 0

# 也可以使用for循环来迭代查询结果
# for row in cursor:
#     print("ID=%d, Name=%s" % (row[0], row[1]))
while row:
    if i < 1000:
        if is_String(row[1]):
            i = i+1
            arr = getLonLat(row[2]).split(',')
            print("lon=%s, lat=%s" % (arr[0], arr[1]))
            sql = "update scanData set longitude='"+arr[0]+"',latitude='"+arr[1]+"' where scanId='"+str(row[0])+"'"
            sqlArr.append(sql)
        
    row = cursor.fetchone()


for sql in sqlArr:
    print(sql)
    cursor.execute(sql)
    
conn.commit()


# 关闭连接

conn.close()






说明

请注意,一定要注意代码的缩进,上面的代码可能由于排版的问题,会导致无法运行的。

总结

上面的代码,我只用了半天就搞定了,还包括弄环境之类的,并不是我有多么厉害,而是编码的经验多了,各类计算机语言都是相通的,并且Python的门槛真的很低,部分地方上的中小学都开始教Python的课程了(以后可能会全民编码了,哈哈哈)。当然上面的代码也是入门而已,和真正做项目还有很大的差距。Python的强大不仅是做爬虫而已,而且滴滴,Uber等巨头公司直接用它来做后台服务。

上一篇:你写的单例一定安全吗?


下一篇:Intelli J中好用和提高生产力的插件:Lombok 和Free Mybatis Plugin