使用python来获取数据并把数据插入到本地数据库

举报
秦玉安 发表于 2021/09/01 11:52:43 2021/09/01
【摘要】 python获取数据并插入到数据库 python获取数据并插入到数据库 1:平台显示数据 2:登录API 开发者平台 3:使用python查询数据信息 3.1获取AK和SK 3.2安装API库,也就是SDK库 3.3 更换AK和SK,执行程序 4:解析数据并插入到本地数据库 1:平台显示数据当数据上传之后,平台是不会保存你的数据的,如何要帮你保存数据的话,需要付费 的,进行数据流转才可以,...

python获取数据并插入到数据库

1:平台显示数据

当数据上传之后,平台是不会保存你的数据的,如何要帮你保存数据的话,需要付费 的,进行数据流转才可以,当然我们也可以自己自己保存数据到本地。首先先查看信息数据。

image-20210901092508202

2:登录API 开发者平台

API Explorer平台地址

https://apiexplorer.developer.huaweicloud.com/apiexplorer/sdk?product=IoTDA&api=ShowDeviceShadow

查看设备影子API接口

image-20210901092843196

3:使用python查询数据信息

返回查看python的API接口代码

image-20210901093031240

具体代码如下:

# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkiotda.v5.region.iotda_region import IoTDARegion
from huaweicloudsdkiotda.v5 import *

if __name__ == "__main__":
    ak = "<YOUR AK>"
    sk = "<YOUR SK>"

    credentials = BasicCredentials(ak, sk) \

    client = IoTDAClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(IoTDARegion.value_of("cn-north-4")) \
        .build()

    try:
        request = ShowDeviceShadowRequest()
        request.device_id = "API Explorer"
        response = client.show_device_shadow(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

3.1获取AK和SK

因为代码里面涉及到AK和SK,这个是密钥,需要去平台下载

image-20210901093407655

image-20210901093528871

下载的文件是以.csv结尾的。用哪个excel打开

image-20210901093556105

3.2安装API库,也就是SDK库

为什么要安装这个,这个类似一个调用文件,你没有的话,就无法执行API接口,所以需要安装,安装命令

pip install huaweicloudsdkiotda

image-20210901093936232

在哪里打开呢,前提条件,直接在windows环境中,需要安装过python的,推荐3.0版本以上的python,在cmd模式下,输入上面的命令就好。

image-20210901094220800

安装成功会提示

image-20210901094246722

3.3 更换AK和SK,执行程序

更新后的代码,如下图所示:

image-20210901094650894

执行python代码,就可以获取数据信息了。

image-20210901094823534

4:解析数据并插入到本地数据库

数据库使用了sqlite作为存储ip数据库,sqlite简单、灵活、轻量、开源,和文件系统一样。当然也可以用mysql,sqlserver都可以,自己喜欢哪个用哪个。
SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常用在各种嵌入式系统中,同时Python里面就内置了SQLite3模块,所以,在Python中使用SQLite3的时候,不需要安装任何东西,直接使用,简单方便。

python操作sqllite的方式有很多,这里就不多说,我觉得讲的比较好的,请看下面连接这篇文章

https://www.cnblogs.com/desireyang/p/12102143.html

最终需要用到的几个文件

image-20210901112349737

执行脚本得到的文件

image-20210901112452375

查看数据文件

image-20210901112535159

最后,为了定时获取数据,我每个10秒就获取数据信息,执行定时任务脚本

import time
 
def printHello():
 print ("Hello")
 print("当前时间戳是", time.time())
 
def loop_func(func, second):
 # 每隔second秒执行func函数
 while True:
  func()
  time.sleep(second)
 
loop_func(printHello, 1)

执行的任务图,在CMD下

image-20210901113230325

最后等到的数据库文件

image-20210901113316863

至此,数据获取成功,也是变相的同步信息到本地,最后,我会搭建一个iot平台,用来显示数据信息。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。