-
2021-06-04 22:43:15
下面以调用丁香园的API接口获取新冠疫情数据为例。
丁香园提供的API接口及说明如下:
调用该API接口获取数据的代码如下:
import requests
import json
import pandas as pd#以requests.get方式调用API接口,获取JSON格式的数据
data=requests.get(url=‘https://lab.isaaclin.cn/nCoV/api/area’)
data=data.json()res=data[‘results’] #获取键名为results的对应值,为字典格式
df=pd.DataFrame(res) #将res转换为数据框格式,便于清洗和处理更多相关内容 -
java post获取网页数据以及get方式获取数据
2012-03-23 11:09:15在文件里面,数据的抓取为正则表达式方式抓取数据 实现的方式有。 1.根据文件中出现的字符进行抓取。 2。可以抓取前后2端的中间数据 3。可以抓取前后(不包括前端和后端的数据)的中间的数据。 还有,懒的说了。上... -
Java中获取数据的类型
2021-08-20 10:49:45在查阅相关资料以后发现Java中没有相应的内置函数来返回数据的类型,只能自己定义方法来获取数据的类型,索性就自己写一个方法来获取数据的类型。 提示:以下是本篇文章正文内容,下面案例可供参考 一、函数代码 ...
前言
在复习Java基础时突然想到,Python中有内置函数type()可以获取数据的类型,在Java中是否也有函数能够返回数据的类型呢?在查阅相关资料以后发现Java中没有相应的内置函数来返回数据的类型,只能自己定义方法来获取数据的类型,索性就自己写一个方法来获取数据的类型。
提示:以下是本篇文章正文内容,下面案例可供参考
一、函数代码
package cn.shijimo.test; public class GetType { public static String getType(Object obj) { /** * 1. 通过反射获取传来参数的JavaClass对象 * 2. 获取到JavaClass对象的类型名称 * 3. 将参数的类型名称返回 */ return obj.getClass().getTypeName(); } }
设置getType方法为静态方法,在其他类中也可以调用该方法
二、测试
在这里使用String类型和一个自己创建的Student类进行测试,看是否能在控制台上输出对应的全路径
运行结果:
测试通过
总结
以上便是Java中获取数据类型的方法,虽然有些方法Java中并没有进行内置,但是通过Java中的反射机制,也可以很轻松的实现。
-
单片机数据上传到阿里云物联网平台后,如何在手机端和网页端获取获取数据?
2021-04-23 11:24:47最近遇到了一个需求:单片机上传数据到阿里云物联网平台,手机端或者网页端能够从物联网平台获取数据并显示到出来,再加一个手机端/网页端通过物联网平台控制单片机。 最终采用了阿里云物联网平台提供的方法,使用...最近遇到了一个需求:单片机上传数据到阿里云物联网平台,手机端或者网页端能够从物联网平台获取数据并显示到出来,再加一个手机端/网页端通过物联网平台控制单片机。
最终采用了阿里云物联网平台提供的方法,使用规则引擎数据转发的功能,把Topic 1 的消息转发到 Topic 2中,一、创建一个产品并自定义一个主题
创建主题的时候建议操作权限选择发布和订阅,方便调试。主题中有${deviceName},代表产品下的每一个设备都可以使用这一个类型主题,只要把deviceName改为设备名字(开发时填写主题要把" ${} " 去掉),这样每个设备就具有一个自己的主题,然后使用数据流转功能,每个设备之间就可以进行通信。
二、创建该产品下的一个设备
创建一个设备时,设备名字(我用web1来表示网页端设备)建议都填上。创建好设备后,设备处于未激活状态,这时需要复制该设备的三元组,解析出阿里云物联网平台的域名、用户id、用户名、密码等信息,用于给单片机连接到物联网平台。
三、解析三元组
解析三元组的工具有很多,包括阿里官方也提供了,我习惯用下面这个工具。
四、设备连接到物联网平台
这里我就用MQTT.fx来模拟网页端连接到物联网平台,把相关信息填写好,点击connect按钮即可,如果是真实的单片机设备,也是需要用到这些信息来连接到物联网平台的。
连接成功后,刷新一下设备,可以看到web1这个设备已经显示在线
验证一下web1设备订阅的主题是否能正常使用。
五、规则引擎数据转发功能
根据上面的步骤,我有创建了一个名为stm32的设备,用来模拟真实单片机给物联网平台发消息,接着把消息流转到web1这个中。现在确保两个设备在线。
在右边的规则引擎中点击云产品流转,点击创建规则,规则名称可以随便,但是数据格式这里有个坑:- 如果你选这json格式,那么stm32给物联网平台发的数据必须是json格式,才能被流转到另外一个主题,否则,另外一个主题是收不到任何消息的。
- 如果选择了二进制,那就可以随意一点,任何消息都可以转发,根据个人需求选择。
点击编辑规则,在这个页面这,处理数据中点击编写SQL,这里就是数据来源的地方,SQL语句可以起到一定的筛选作用,用*号就代表转发所有数据,因为是stm32给我的web1网页端发数据,所以数据来源的是stm32设备下的主题(前面创建产品时自定义的主题,它会为产品下的每个设备分配的一个主题)。
接着在转发数据那里添加一个操作,选择发布到另外一个主题,然后下面的信息填写我们的目标设备的主题即可
编辑完规则后,记得返回启动规则,到此就大功告成啦!
六、测试
stm32发给web1:
stm32发给手机:
以上就是我测试的过程,如果博客有错误的地方欢迎指出,还不了解这个过程的朋友可以评论留言哈! -
Android中连接MySql数据库获取数据的简单实现
2019-02-20 19:37:37但是今天我们就来尝试实现直接连接到MySql数据库获取数据的功能。 代码实现 demo很简单,xml布局文件显示的是一个按钮和一个textView控件。 点击按钮实现连接MySql数据库并获取表中的数据;textView用来显示...背景
一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的。但是今天我们就来尝试实现直接连接到MySql数据库获取数据的功能。
demo布局
demo很简单,xml布局文件显示的是一个按钮和一个textView控件。
点击按钮实现连接MySql数据库并获取表中的数据;textView用来显示获取的数据。xml布局显示如下:
xml代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/btn_get_data" android:layout_margin="2dp" android:textSize="16sp" android:text="获取数据测试" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv_data" android:padding="10dp" android:textSize="16sp" android:gravity="center" android:text="imxiaoqi" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
导入jar包
实现直连MySql数据库需要导入mysql-connector-java-5.1.30-binjar包(百度网盘提取码为:ctxa)。
将jar下载后,在新建的demo项目app/src/main 目录下 创建libs文件夹,将jar包复制到该文件夹下,然后右键选择 Add As Library 进行导入即可。如图:
等待gradle同步成功后,打开gradle文件依赖内容如下说明导入成功:
demo代码实现
jar包导入成功后,对应的api就可以使用了,下面我们来看代码的实现。
代码实现思路:首先需要连接至MySql数据库,连接成功后,就可以做对应的数据库操作了。代码中我会给出详细的注释,就不详细的说每个变量的意思了。
- MainActivity.java代码如下:
package com.example.administrator.mysqldemo; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.HashMap; public class MainActivity extends Activity { private Button btn_get_data; private TextView tv_data; @SuppressLint("HandlerLeak") private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case 0x11: String s = (String) msg.obj; tv_data.setText(s); break; case 0x12: String ss = (String) msg.obj; tv_data.setText(ss); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 控件的初始化 btn_get_data = findViewById(R.id.btn_get_data); tv_data = findViewById(R.id.tv_data); setListener(); } /** * 设置监听 */ private void setListener() { // 按钮点击事件 btn_get_data.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 创建一个线程来连接数据库并获取数据库中对应表的数据 new Thread(new Runnable() { @Override public void run() { // 调用数据库工具类DBUtils的getInfoByName方法获取数据库表中数据 HashMap<String, Object> map = DBUtils.getInfoByName("Charger9527"); Message message = handler.obtainMessage(); if(map != null){ String s = ""; for (String key : map.keySet()){ s += key + ":" + map.get(key) + "\n"; } message.what = 0x12; message.obj = s; }else { message.what = 0x11; message.obj = "查询结果为空"; } // 发消息通知主线程更新UI handler.sendMessage(message); } }).start(); } }); } }
- 上面的代码比较简单,不过涉及到一个数据库工具类DBUtils.java,代码如下:
package com.example.administrator.mysqldemo; import android.content.Context; import android.util.Log; import android.widget.Toast; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.HashMap; /** * 数据库工具类:连接数据库用、获取数据库数据用 * 相关操作数据库的方法均可写在该类 */ public class DBUtils { private static String driver = "com.mysql.jdbc.Driver";// MySql驱动 // private static String url = "jdbc:mysql://localhost:3306/map_designer_test_db"; private static String user = "root";// 用户名 private static String password = "123456";// 密码 private static Connection getConn(String dbName){ Connection connection = null; try{ Class.forName(driver);// 动态加载类 String ip = "192.168.3.61";// 写成本机地址,不能写成localhost,同时手机和电脑连接的网络必须是同一个 // 尝试建立到给定数据库URL的连接 connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName, user, password); }catch (Exception e){ e.printStackTrace(); } return connection; } public static HashMap<String, Object> getInfoByName(String name){ HashMap<String, Object> map = new HashMap<>(); // 根据数据库名称,建立连接 Connection connection = getConn("map_designer_test_db"); try { // mysql简单的查询语句。这里是根据MD_CHARGER表的NAME字段来查询某条记录 String sql = "select * from MD_CHARGER where NAME = ?"; // String sql = "select * from MD_CHARGER"; if (connection != null){// connection不为null表示与数据库建立了连接 PreparedStatement ps = connection.prepareStatement(sql); if (ps != null){ // 设置上面的sql语句中的?的值为name ps.setString(1, name); // 执行sql查询语句并返回结果集 ResultSet rs = ps.executeQuery(); if (rs != null){ int count = rs.getMetaData().getColumnCount(); Log.e("DBUtils","列总数:" + count); while (rs.next()){ // 注意:下标是从1开始的 for (int i = 1;i <= count;i++){ String field = rs.getMetaData().getColumnName(i); map.put(field, rs.getString(field)); } } connection.close(); ps.close(); return map; }else { return null; } }else { return null; } }else { return null; } }catch (Exception e){ e.printStackTrace(); Log.e("DBUtils","异常:" + e.getMessage()); return null; } } }
这个类,有点需要注意的是:数据库的ip地址记得写本机IPV4地址,然后手机与电脑连接同一个网络,只有这样条件下,手机才能成功的连接上本机的mysql数据库。
上面的代码我给出了关键的注释,这里就不展开说明了,大家自己慢慢捋一捋。
权限设置
这里需要网络权限,大家别忘记了哦!在清单配置文件中添加
<uses-permission android:name="android.permission.INTERNET"/>
即可。
应用运行的结果
上面的所有操作完成后,我们来安装到手机上运行看看结果吧!
从上面两幅图可以看到,从mysql数据库表中获取数据成功了。
该文分享关键的信息就是怎么样能成功连接上mysql数据库。
一旦成功连接了,那么操作数据库就不难了。我这里只给出了一个查询操作,其他的增删改的操作就都大同小异,大家自己去实践吧!加油哦!
A little bit of progress every day!Come on!
-
vue 请求接口获取数据
2020-12-01 16:52:02vue 请求接口获取数据 1.链接:https://www.cnblogs.com/kymming/p/6484626.html <!doctype html> <html> <head> <meta charset="UTF-8"> <title>获取图片列表</title> <... -
动态下拉框,从后台获取数据
2019-06-13 18:38:22动态下拉框,从后台获取数据 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>下拉框示例</title> <script type="text/javascript" src... -
微信小程序 通过数据库api获取数据和通过云函数获取数据
2020-04-27 15:48:47通过数据库api获取数据 手动添加数据。 打开云开发 点击数据库 在集合名称那一栏点击 +号 创建集合 – 点击 添加记录 在添加数据称成功后,在index.wxml页面中,写按钮样式。 <button bindtap="shujuku... -
python3 接口获取数据
2018-12-06 13:59:12第一次了解到“通过接口获取数据”是在做一个项目时需要存储大量数据,而通过接口是传输大量数据最好的选择,因为它比导出csv文件,再保存至数据库的方法要更快捷、更方便。自己对接口学习了一段时间,对学到的东西... -
Python爬虫精简步骤 获取数据
2020-02-14 19:56:34爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。 爬虫能做很多事,能做商业分析,也能做生活助手,比如:分析北京近两年二手房成交均价是多少?广州的Python工程师平均薪资是多少?北京哪家餐厅... -
vue中拿到接口,并获取数据,渲染到页面
2020-11-22 20:31:54前提,封装好了获取数据的api接口,并在main,js中注册到了原型。 然后在 1,首先在api中获取接口, 2,在utils中封装http请求的get 和post方法,并注册到原型 import axios from "axios" // 添加一个请求拦截器,... -
前端获取数据常见的几种方法
2020-09-16 19:55:101.原生获取ajax <script> // 1. 创建xhr,是一个请求对象,用来向服务器端发送各种请求 var xhr = new XMLHttpRequest(); // 在放送请求之前,必须建立连接。 // 2. open()打开连接,参数1:请求方式,不... -
vue怎么获取数据的
2018-08-03 08:13:45}).then(function(response){ //接口返回数据 this.imgList=response.data; },function(error){ }) } } 使用vue-resource代码如下: new Vue({ el:'#app', data:{data:""}, ... -
VueX获取数据和修改数据
2019-10-30 17:06:40首先是获取数据,两种方式 第一种。。。获取 然后这里是使用 第二种获取的方式呢!!! 然后页面的使用也是直接使用this.属性使用, 还有一中方是就是直接使用this.$store.state.属性,获取里面的值, ... -
用Excel获取数据——不仅仅只是打开表格
2017-05-15 10:45:55在Excel上具备数据获取的能力是指什么?难道不是把csv格式的表格和Excel格式的表格打开就好了吗?然而并非这样。 本文选自《数据化运营速成手册》。 其实标题中有两层意思:第一层意思是在一些数据库管理不那么... -
vue下拉框怎样从数据库获取数据?
2019-12-11 10:54:59vue从数据库获取数据显示到页面下拉框里面;目前有后端的查询所有数据的端口,求源码。 -
vue中使用echarts并从Java后台获取数据
2019-12-22 18:28:14文章目录使用步骤:从后台获取数据遇到的问题echarts标题title和图例legend重合的解决方法。常用技巧 使用步骤: 安装插件 npm install echarts -S 使用npm 安装 Echarts,安装成功后,可在项目package.json 文件中... -
ECharts动态获取数据
2017-09-28 10:35:25ECharts动态获取数据 -
Kettle使用接口获取数据(九)
2019-05-12 09:52:11Kettle使用接口获取数据 -
kinect 2获取数据流程介绍(强烈推荐入门新手)
2019-05-27 11:16:54Kinect V2开发(2)从Kinect获取数据 在Kinect for windows SDK2.0中,Kinect有多种类型的数据源,每个类型的数据都有三个类与之对应:Source,Reader和Frame。例如,要读取骨架,就有IBodyFrameSource, ... -
如何使用axios获取数据
2018-03-06 11:32:47axios 简介axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:· 1.... 转换请求和响应数据· 6. 取消请求· 7. 自动转换JSON数据· 8. 客户端支持防止 CSRF... -
vue ---通过API接口获取数据
2020-06-06 22:58:52// 在最后必须 return config return config }) Vue.prototype.$http = axios 获取数据 async 【函数名】() { const { data: res } = await this.$http.get('menus') //判断状态 if (res.meta.status !== 200) ... -
get和post获取数据的方式
2018-03-29 14:29:441、获取 get 请求提交的数据 当发生GET请求的时候,可以通过 request.GET['名称']的方式来获取 请求提交的数据 2、POST 获取数据 if request.method == 'POST': if 'name' in request.POST and request.POST['... -
vue项目及axios请求获取数据
2018-09-17 10:12:46一般vue项目中 一个页面是由多个组件组成的,各个组建的数据都是统一在主界面的组件中发送axios请求获取,这样极大地提高了性能。 首先要导入用到的组件和axios import HomeHeader from './components/Header' ... -
Promise获取数据的几种方式
2019-09-20 15:05:59Promise获取数据的几种方式一、Promise.all1. 互相不关联的ajax请求:2. 统一获取多个异步请求返回的数据:一、Promise.then 一、Promise.all 我们平时在项目中可能会请求多个异步结果最后整合到一起的需求,也就是... -
react select 从后台获取数据绑定(获取数据里有不需要的数据)
2019-05-10 11:03:34首先在页面静态资源加载完之后获取数据: 定义对象: constructor() { super(); this.state = { districts: [] }; } componentDidMount() { this.getusersDetail(); } const districts = ... -
Android从onenet上获取数据
2018-11-18 23:43:51onenet平台上: 设备信息:主要是设备id和APIKey这两个参数 数据流信息: 其中一个数据流的名称:shumditity ...所有数据流的最新一个数据: "http://api.heclouds.com/devices/36427574/datapoints... -
FullCalendar: 动态获取数据
2018-03-29 12:37:09项目中需要用到日历插件,在进行一番比较之后选择了FullCalendar,但是看官方文档的过程中...1. 从后台获取数据并按数据状态显示不同背景颜色 关键点:将ajax请求插入calendar 的初始化代码中,将返回的数据转化为... -
vue下拉菜单 从后台获取数据
2019-11-07 17:00:10vue下拉菜单 从后台获取数据: vue: ;" size="small"> 站点名称"> 请选择" style="width: 200px;"> v-for="item in dataOptions" :key="item.value" :label="item.label" :value="item.value"> ... -
Vue——父子组件间异步动态获取数据传递数据时,子组件获取不到值或者延时获取
2019-08-14 13:52:33父子组件传值时,父组件从接口获取数据,通过props传递给子组件。实际情况下:父组件获取数据有时间延迟,传递的props值为空,子组件接收的数据为props默认值 父子组件生命周期 父组件异步请求数据传递给子组件 父子...