【QT】QT中http协议和json数据的解析-http获取天气预报

QT中http协议和json数据的解析

  • 1.http协议的原理
  • 2.QT中http协议的通信流程
    • 2.1 方法步骤
  • 3.使用http协议(通过http下载图片和获取天气预报信息)
    • 3.1 http下载网络上的图片(下载小文件)
      • 3.1.1 示例代码
      • 3.1.2 现象
    • 3.2 获取网络上天气预报
      • 3.2.1 免费的天气预报接口:
  • 4.json数据的构成
  • 5.如何解析json数据
    • 5.1 示例代码:(代码为获取网络上的天气预报)
    • 5.2 现象
  • 附件:以下是天气预报json数据获取中使用的城市代码:

1.http协议的原理

本质上http是属于应用层的通信协议,底层使用的就是tcp协议

2.QT中http协议的通信流程

2.1 方法步骤

涉及到三个类:QNetworkRequest --》 http请求QNetworkAccessManager --》管理http请求(发送http请求)QNetworkReply --》http应答
第一步:创建一个http请求 QNetworkRequest::QNetworkRequest(const QUrl &url = QUrl())参数:url --》表示网址QUrl::QUrl(const QString &url)参数:url --》要访问的网址
第二步:创建QNetworkAccessManager的对象,该对象发送刚才的请求//http中有两种常见的请求方法,分别是get/postQNetworkReply *QNetworkAccessManager::get(const QNetworkRequest &request)参数:request --》要发送的请求[signal] void QNetworkAccessManager::finished(QNetworkReply *reply)注意:如果请求成功,服务器(网址)会自动回复应答信息,程序员需要关联finished信号,在槽函数里面接收应答信息即可
第三步:在第二步定义的槽函数里面接收应答信息QByteArray QNetworkReply::readAll()

图示:
在这里插入图片描述

3.使用http协议(通过http下载图片和获取天气预报信息)

https和http的区别
https使用了算法安全加密

3.1 http下载网络上的图片(下载小文件)

注意:在l浏览器中下载图片时,开源右键复制图片的地址,填入时需要把https改成http

直接一次性读取服务器返回的应答信息
QPixmap map;
map.loadFromData(buf是读取的应答信息);

3.1.1 示例代码

// widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrl>
#include <QNetworkReply>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButton_clicked();void recvReply(QNetworkReply *reply);private:Ui::Widget *ui;QNetworkAccessManager *httpManager;
};
#endif // WIDGET_H// widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化httpManager = new QNetworkAccessManager(this);// 主动关联finished信号connect(httpManager, &QNetworkAccessManager::finished, this, &Widget::recvReply);
}Widget::~Widget()
{delete ui;
}//下载图片
void Widget::on_pushButton_clicked()
{// 获取输入框中输入的图片地址QString picURL= ui->lineEdit->text();// 依据图片地址构建一个QUrl对象QUrl url(picURL);// 创建请求对象QNetworkRequest picRequest(url);//发送请求httpManager->get(picRequest);
}void Widget::recvReply(QNetworkReply *reply)
{//读取http服务器回复的应答信息//由于我这个例子是来下载网络上的图片:因此服务器回复给我就是图片数据QByteArray replyPicData = reply->readAll();//在标签上显示图片//方法1:依据图片的路径名来构造QPixmap类的对象//方法2:依据图片的原始数据来构造QPixmap类的对象(目前例子使用)QPixmap pixmap;pixmap.loadFromData(replyPicData); // 依据图片的原始数据(二进制数据)来构造QPixmap类的对象
//    pixmap.scaled(ui->label->width(), ui->label->height()); //调整图片大小ui->label->setScaledContents(true); // 允许 QLabel 自动缩放内容ui->label->setPixmap(pixmap); // 显示图像
}

3.1.2 现象

请添加图片描述

3.2 获取网络上天气预报

3.2.1 免费的天气预报接口:

网址:https://www.sojson.com/api/weather.html
打开网站后界面如下:
在这里插入图片描述当需要获取某个城市天气数据json时候,需要传入一个城市代码编码作为入参,
地址: http://t.weather.itboy.net/api/weather/city/xxxxx ,其中xxxxx即为城市代码(城市代码见后面附件)。

  • 例如获取广州天气:http://t.weather.itboy.net/api/weather/city/101280101

浏览器获取的天气数据:(也可勾选优质打印,输出为排版好的json格式)
在这里插入图片描述
在这里插入图片描述
或者通过json在线解析工具将其解析为json格式的数据:
json在线解析工具网址:https://www.jyshare.com/front-end/53/

在这里插入图片描述

  • 例如获取上海天气:http://t.weather.itboy.net/api/weather/city/101020100
    在这里插入图片描述

4.json数据的构成

json数据:一种数据格式,在计算机前端开发中经常使用这个格式的数据,保存信息很方便
json数据只能由数组,对象,键值对三种构成
\quad 对象:用{}来表示,可以嵌套 {键值对}
\quad 数组:用[]来表示,数组里面只能存放相同类型的数据 [1,2,3] [{},{},{}] [键值对,键值对,键值对]
\quad 键值对:用键:值表示, 键只能是字符串,值可以是任意合法类型

5.如何解析json数据

json数据在解析之前,程序员必须要提前知道json数据的构成,否则无法解析
QT提供了如下几个类帮助解析json数据:QJsonDocument --》把json数据标准化存储QJsonObject   --》对象QJsonArray    --》数组QJsonValue    --》值QJsonParseError --》保存出错信息
解析json数据的一般思路:
第一步:把json数据标准化存储[static] QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = Q_NULLPTR)返回值:QJsonDocument对象存放标准化之后的json数据参数:json --》要存储的原始json数据error --》存放出错信息
第二步:严格按照你看到的json数据的结构一步步解析json数据(从整体到局部,一层层剥洋葱)QJsonObject QJsonDocument::object() const   //获取json数据中的对象QJsonArray QJsonDocument::array() const     //获取json数据中的数组QJsonValue QJsonObject::value(const QString &key) const  //通过键得到对应的值QJsonValue QJsonArray::at(int i) const           //获取数组中的下标元素返回值:跟键对应的值参数:key --》键QJsonObject QJsonValue::toObject() const   //把键值对中的值进行转换,转换成对象总结:QJsonValue类中提供了大量的toxxxxx()方法,原因是键值对中的值可以是任意合法的数据类型,需要我们去转换        

5.1 示例代码:(代码为获取网络上的天气预报)

// widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrl>
#include <QNetworkReply>
// json相关
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
#include <QJsonParseError>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButton_clicked();void recvReply(QNetworkReply *reply);private:Ui::Widget *ui;QNetworkAccessManager *httpManager;
};
#endif // WIDGET_H// widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化httpManager = new QNetworkAccessManager(this);// 主动关联finished信号,如果应答成功会回复应答消息,在槽函数中进行接收connect(httpManager, &QNetworkAccessManager::finished, this, &Widget::recvReply);
}Widget::~Widget()
{delete ui;
}//获取天气预报
void Widget::on_pushButton_clicked()
{// 获取输入框中输入的天气预报地址// 例如获取广州的天气:http://t.weather.itboy.net/api/weather/city/101280101QString picURL= ui->lineEdit->text();// 依据天气预报地址构建一个QUrl对象QUrl url(picURL);// 创建请求对象QNetworkRequest picRequest(url);//发送输入框中对应天气预报地址的请求httpManager->get(picRequest);
}void Widget::recvReply(QNetworkReply *reply)
{//读取http服务器回复的应答信息//由于现在获取天气预报信息,因此回复给我的应答信息replyPicData里面就是天气预报信息QByteArray replyWeatherData = reply->readAll();// 在文本编辑框中显示回复的天气预报信息ui->textEdit->setText(replyWeatherData);// 第一步:把json数据标准化存储,也就是解析为json数据QJsonDocument doc = QJsonDocument::fromJson(replyWeatherData);//第二步:严格按照看到的json数据的结构一步步解析json数据(从整体到局部)//1.最外层是对象,获取这个对象里面的内容QJsonObject obj1 = doc.object();//2.获取obj1中键 data 对应的值QJsonValue val1 = obj1.value("data");// 3.val1是个对象,需要把QJsonValue val1转换成对象--》才可以调用QJsonObject类的方法QJsonObject obj2 = val1.toObject();// 4.把obj2里面的键forecast对应的值得到QJsonValue val2 = obj2.value("forecast");// 5.val2是个数组,把QJsonValue转换成数组--》才可以调用QJsonArray类的方法QJsonArray array = val2.toArray();// 6.得到数组下标为1的那个元素(其实也是个对象)QJsonValue val3 = array.at(1);// 7.val3是个对象,需要把QJsonValue转换成对象--》才可以调用QJsonObject类的方法QJsonObject obj3 = val3.toObject();// 8.把obj3里面的键high对应的值得到QJsonValue val4 = obj3.value("high");qDebug() << "high的值是:" << val4.toString();
}

5.2 现象

在这里插入图片描述
请添加图片描述

附件:以下是天气预报json数据获取中使用的城市代码:

{"城市代码": [{"省": "北京","市": [{"市名": "北京","编码": "101010100"},{"市名": "朝阳","编码": "101010300"},{"市名": "顺义","编码": "101010400"},{"市名": "怀柔","编码": "101010500"},{"市名": "通州","编码": "101010600"},{"市名": "昌平","编码": "101010700"},{"市名": "延庆","编码": "101010800"},{"市名": "丰台","编码": "101010900"},{"市名": "石景山","编码": "101011000"},{"市名": "大兴","编码": "101011100"},{"市名": "房山","编码": "101011200"},{"市名": "密云","编码": "101011300"},{"市名": "门头沟","编码": "101011400"},{"市名": "平谷","编码": "101011500"},{"市名": "八达岭","编码": "101011600"},{"市名": "佛爷顶","编码": "101011700"},{"市名": "汤河口","编码": "101011800"},{"市名": "密云上甸子","编码": "101011900"},{"市名": "斋堂","编码": "101012000"},{"市名": "霞云岭","编码": "101012100"},{"市名": "北京城区","编码": "101012200"},{"市名": "海淀","编码": "101010200"}]},{"省": "天津市","市": [{"市名": "天津","编码": "101030100"},{"市名": "宝坻","编码": "101030300"},{"市名": "东丽","编码": "101030400"},{"市名": "西青","编码": "101030500"},{"市名": "北辰","编码": "101030600"},{"市名": "蓟县","编码": "101031400"},{"市名": "汉沽","编码": "101030800"},{"市名": "静海","编码": "101030900"},{"市名": "津南","编码": "101031000"},{"市名": "塘沽","编码": "101031100"},{"市名": "大港","编码": "101031200"},{"市名": "武清","编码": "101030200"},{"市名": "宁河","编码": "101030700"}]},{"省": "上海","市": [{"市名": "上海","编码": "101020100"},{"市名": "宝山","编码": "101020300"},{"市名": "嘉定","编码": "101020500"},{"市名": "南汇","编码": "101020600"},{"市名": "浦东","编码": "101021300"},{"市名": "青浦","编码": "101020800"},{"市名": "松江","编码": "101020900"},{"市名": "奉贤","编码": "101021000"},{"市名": "崇明","编码": "101021100"},{"市名": "徐家汇","编码": "101021200"},{"市名": "闵行","编码": "101020200"},{"市名": "金山","编码": "101020700"}]},{"省": "河北","市": [{"市名": "石家庄","编码": "101090101"},{"市名": "张家口","编码": "101090301"},{"市名": "承德","编码": "101090402"},{"市名": "唐山","编码": "101090501"},{"市名": "秦皇岛","编码": "101091101"},{"市名": "沧州","编码": "101090701"},{"市名": "衡水","编码": "101090801"},{"市名": "邢台","编码": "101090901"},{"市名": "邯郸","编码": "101091001"},{"市名": "保定","编码": "101090201"},{"市名": "廊坊","编码": "101090601"}]},{"省": "河南","市": [{"市名": "郑州","编码": "101180101"},{"市名": "新乡","编码": "101180301"},{"市名": "许昌","编码": "101180401"},{"市名": "平顶山","编码": "101180501"},{"市名": "信阳","编码": "101180601"},{"市名": "南阳","编码": "101180701"},{"市名": "开封","编码": "101180801"},{"市名": "洛阳","编码": "101180901"},{"市名": "商丘","编码": "101181001"},{"市名": "焦作","编码": "101181101"},{"市名": "鹤壁","编码": "101181201"},{"市名": "濮阳","编码": "101181301"},{"市名": "周口","编码": "101181401"},{"市名": "漯河","编码": "101181501"},{"市名": "驻马店","编码": "101181601"},{"市名": "三门峡","编码": "101181701"},{"市名": "济源","编码": "101181801"},{"市名": "安阳","编码": "101180201"}]},{"省": "安徽","市": [{"市名": "合肥","编码": "101220101"},{"市名": "芜湖","编码": "101220301"},{"市名": "淮南","编码": "101220401"},{"市名": "马鞍山","编码": "101220501"},{"市名": "安庆","编码": "101220601"},{"市名": "宿州","编码": "101220701"},{"市名": "阜阳","编码": "101220801"},{"市名": "亳州","编码": "101220901"},{"市名": "黄山","编码": "101221001"},{"市名": "滁州","编码": "101221101"},{"市名": "淮北","编码": "101221201"},{"市名": "铜陵","编码": "101221301"},{"市名": "宣城","编码": "101221401"},{"市名": "六安","编码": "101221501"},{"市名": "巢湖","编码": "101221601"},{"市名": "池州","编码": "101221701"},{"市名": "蚌埠","编码": "101220201"}]},{"省": "浙江","市": [{"市名": "杭州","编码": "101210101"},{"市名": "舟山","编码": "101211101"},{"市名": "湖州","编码": "101210201"},{"市名": "嘉兴","编码": "101210301"},{"市名": "金华","编码": "101210901"},{"市名": "绍兴","编码": "101210501"},{"市名": "台州","编码": "101210601"},{"市名": "温州","编码": "101210701"},{"市名": "丽水","编码": "101210801"},{"市名": "衢州","编码": "101211001"},{"市名": "宁波","编码": "101210401"}]},{"省": "重庆","市": [{"市名": "重庆","编码": "101040100"},{"市名": "合川","编码": "101040300"},{"市名": "南川","编码": "101040400"},{"市名": "江津","编码": "101040500"},{"市名": "万盛","编码": "101040600"},{"市名": "渝北","编码": "101040700"},{"市名": "北碚","编码": "101040800"},{"市名": "巴南","编码": "101040900"},{"市名": "长寿","编码": "101041000"},{"市名": "黔江","编码": "101041100"},{"市名": "万州天城","编码": "101041200"},{"市名": "万州龙宝","编码": "101041300"},{"市名": "涪陵","编码": "101041400"},{"市名": "开县","编码": "101041500"},{"市名": "城口","编码": "101041600"},{"市名": "云阳","编码": "101041700"},{"市名": "巫溪","编码": "101041800"},{"市名": "奉节","编码": "101041900"},{"市名": "巫山","编码": "101042000"},{"市名": "潼南","编码": "101042100"},{"市名": "垫江","编码": "101042200"},{"市名": "梁平","编码": "101042300"},{"市名": "忠县","编码": "101042400"},{"市名": "石柱","编码": "101042500"},{"市名": "大足","编码": "101042600"},{"市名": "荣昌","编码": "101042700"},{"市名": "铜梁","编码": "101042800"},{"市名": "璧山","编码": "101042900"},{"市名": "丰都","编码": "101043000"},{"市名": "武隆","编码": "101043100"},{"市名": "彭水","编码": "101043200"},{"市名": "綦江","编码": "101043300"},{"市名": "酉阳","编码": "101043400"},{"市名": "秀山","编码": "101043600"},{"市名": "沙坪坝","编码": "101043700"},{"市名": "永川","编码": "101040200"}]},{"省": "福建","市": [{"市名": "福州","编码": "101230101"},{"市名": "泉州","编码": "101230501"},{"市名": "漳州","编码": "101230601"},{"市名": "龙岩","编码": "101230701"},{"市名": "晋江","编码": "101230509"},{"市名": "南平","编码": "101230901"},{"市名": "厦门","编码": "101230201"},{"市名": "宁德","编码": "101230301"},{"市名": "莆田","编码": "101230401"},{"市名": "三明","编码": "101230801"}]},{"省": "甘肃","市": [{"市名": "兰州","编码": "101160101"},{"市名": "平凉","编码": "101160301"},{"市名": "庆阳","编码": "101160401"},{"市名": "武威","编码": "101160501"},{"市名": "金昌","编码": "101160601"},{"市名": "嘉峪关","编码": "101161401"},{"市名": "酒泉","编码": "101160801"},{"市名": "天水","编码": "101160901"},{"市名": "武都","编码": "101161001"},{"市名": "临夏","编码": "101161101"},{"市名": "合作","编码": "101161201"},{"市名": "白银","编码": "101161301"},{"市名": "定西","编码": "101160201"},{"市名": "张掖","编码": "101160701"}]},{"省": "广东","市": [{"市名": "广州","编码": "101280101"},{"市名": "惠州","编码": "101280301"},{"市名": "梅州","编码": "101280401"},{"市名": "汕头","编码": "101280501"},{"市名": "深圳","编码": "101280601"},{"市名": "珠海","编码": "101280701"},{"市名": "佛山","编码": "101280800"},{"市名": "肇庆","编码": "101280901"},{"市名": "湛江","编码": "101281001"},{"市名": "江门","编码": "101281101"},{"市名": "河源","编码": "101281201"},{"市名": "清远","编码": "101281301"},{"市名": "云浮","编码": "101281401"},{"市名": "潮州","编码": "101281501"},{"市名": "东莞","编码": "101281601"},{"市名": "中山","编码": "101281701"},{"市名": "阳江","编码": "101281801"},{"市名": "揭阳","编码": "101281901"},{"市名": "茂名","编码": "101282001"},{"市名": "汕尾","编码": "101282101"},{"市名": "韶关","编码": "101280201"}]},{"省": "广西","市": [{"市名": "南宁","编码": "101300101"},{"市名": "柳州","编码": "101300301"},{"市名": "来宾","编码": "101300401"},{"市名": "桂林","编码": "101300501"},{"市名": "梧州","编码": "101300601"},{"市名": "防城港","编码": "101301401"},{"市名": "贵港","编码": "101300801"},{"市名": "玉林","编码": "101300901"},{"市名": "百色","编码": "101301001"},{"市名": "钦州","编码": "101301101"},{"市名": "河池","编码": "101301201"},{"市名": "北海","编码": "101301301"},{"市名": "崇左","编码": "101300201"},{"市名": "贺州","编码": "101300701"}]},{"省": "贵州","市": [{"市名": "贵阳","编码": "101260101"},{"市名": "安顺","编码": "101260301"},{"市名": "都匀","编码": "101260401"},{"市名": "兴义","编码": "101260906"},{"市名": "铜仁","编码": "101260601"},{"市名": "毕节","编码": "101260701"},{"市名": "六盘水","编码": "101260801"},{"市名": "遵义","编码": "101260201"},{"市名": "凯里","编码": "101260501"}]},{"省": "云南","市": [{"市名": "昆明","编码": "101290101"},{"市名": "红河","编码": "101290301"},{"市名": "文山","编码": "101290601"},{"市名": "玉溪","编码": "101290701"},{"市名": "楚雄","编码": "101290801"},{"市名": "普洱","编码": "101290901"},{"市名": "昭通","编码": "101291001"},{"市名": "临沧","编码": "101291101"},{"市名": "怒江","编码": "101291201"},{"市名": "香格里拉","编码": "101291301"},{"市名": "丽江","编码": "101291401"},{"市名": "德宏","编码": "101291501"},{"市名": "景洪","编码": "101291601"},{"市名": "大理","编码": "101290201"},{"市名": "曲靖","编码": "101290401"},{"市名": "保山","编码": "101290501"}]},{"省": "内蒙古","市": [{"市名": "呼和浩特","编码": "101080101"},{"市名": "乌海","编码": "101080301"},{"市名": "集宁","编码": "101080401"},{"市名": "通辽","编码": "101080501"},{"市名": "阿拉善左旗","编码": "101081201"},{"市名": "鄂尔多斯","编码": "101080701"},{"市名": "临河","编码": "101080801"},{"市名": "锡林浩特","编码": "101080901"},{"市名": "呼伦贝尔","编码": "101081000"},{"市名": "乌兰浩特","编码": "101081101"},{"市名": "包头","编码": "101080201"},{"市名": "赤峰","编码": "101080601"}]},{"省": "江西","市": [{"市名": "南昌","编码": "101240101"},{"市名": "上饶","编码": "101240301"},{"市名": "抚州","编码": "101240401"},{"市名": "宜春","编码": "101240501"},{"市名": "鹰潭","编码": "101241101"},{"市名": "赣州","编码": "101240701"},{"市名": "景德镇","编码": "101240801"},{"市名": "萍乡","编码": "101240901"},{"市名": "新余","编码": "101241001"},{"市名": "九江","编码": "101240201"},{"市名": "吉安","编码": "101240601"}]},{"省": "湖北","市": [{"市名": "武汉","编码": "101200101"},{"市名": "黄冈","编码": "101200501"},{"市名": "荆州","编码": "101200801"},{"市名": "宜昌","编码": "101200901"},{"市名": "恩施","编码": "101201001"},{"市名": "十堰","编码": "101201101"},{"市名": "神农架","编码": "101201201"},{"市名": "随州","编码": "101201301"},{"市名": "荆门","编码": "101201401"},{"市名": "天门","编码": "101201501"},{"市名": "仙桃","编码": "101201601"},{"市名": "潜江","编码": "101201701"},{"市名": "襄樊","编码": "101200201"},{"市名": "鄂州","编码": "101200301"},{"市名": "孝感","编码": "101200401"},{"市名": "黄石","编码": "101200601"},{"市名": "咸宁","编码": "101200701"}]},{"省": "四川","市": [{"市名": "成都","编码": "101270101"},{"市名": "自贡","编码": "101270301"},{"市名": "绵阳","编码": "101270401"},{"市名": "南充","编码": "101270501"},{"市名": "达州","编码": "101270601"},{"市名": "遂宁","编码": "101270701"},{"市名": "广安","编码": "101270801"},{"市名": "巴中","编码": "101270901"},{"市名": "泸州","编码": "101271001"},{"市名": "宜宾","编码": "101271101"},{"市名": "内江","编码": "101271201"},{"市名": "资阳","编码": "101271301"},{"市名": "乐山","编码": "101271401"},{"市名": "眉山","编码": "101271501"},{"市名": "凉山","编码": "101271601"},{"市名": "雅安","编码": "101271701"},{"市名": "甘孜","编码": "101271801"},{"市名": "阿坝","编码": "101271901"},{"市名": "德阳","编码": "101272001"},{"市名": "广元","编码": "101272101"},{"市名": "攀枝花","编码": "101270201"}]},{"省": "宁夏","市": [{"市名": "银川","编码": "101170101"},{"市名": "中卫","编码": "101170501"},{"市名": "固原","编码": "101170401"},{"市名": "石嘴山","编码": "101170201"},{"市名": "吴忠","编码": "101170301"}]},{"省": "青海省","市": [{"市名": "西宁","编码": "101150101"},{"市名": "黄南","编码": "101150301"},{"市名": "海北","编码": "101150801"},{"市名": "果洛","编码": "101150501"},{"市名": "玉树","编码": "101150601"},{"市名": "海西","编码": "101150701"},{"市名": "海东","编码": "101150201"},{"市名": "海南","编码": "101150401"}]},{"省": "山东","市": [{"市名": "济南","编码": "101120101"},{"市名": "潍坊","编码": "101120601"},{"市名": "临沂","编码": "101120901"},{"市名": "菏泽","编码": "101121001"},{"市名": "滨州","编码": "101121101"},{"市名": "东营","编码": "101121201"},{"市名": "威海","编码": "101121301"},{"市名": "枣庄","编码": "101121401"},{"市名": "日照","编码": "101121501"},{"市名": "莱芜","编码": "101121601"},{"市名": "聊城","编码": "101121701"},{"市名": "青岛","编码": "101120201"},{"市名": "淄博","编码": "101120301"},{"市名": "德州","编码": "101120401"},{"市名": "烟台","编码": "101120501"},{"市名": "济宁","编码": "101120701"},{"市名": "泰安","编码": "101120801"}]},{"省": "陕西省","市": [{"市名": "西安","编码": "101110101"},{"市名": "延安","编码": "101110300"},{"市名": "榆林","编码": "101110401"},{"市名": "铜川","编码": "101111001"},{"市名": "商洛","编码": "101110601"},{"市名": "安康","编码": "101110701"},{"市名": "汉中","编码": "101110801"},{"市名": "宝鸡","编码": "101110901"},{"市名": "咸阳","编码": "101110200"},{"市名": "渭南","编码": "101110501"}]},{"省": "山西","市": [{"市名": "太原","编码": "101100101"},{"市名": "临汾","编码": "101100701"},{"市名": "运城","编码": "101100801"},{"市名": "朔州","编码": "101100901"},{"市名": "忻州","编码": "101101001"},{"市名": "长治","编码": "101100501"},{"市名": "大同","编码": "101100201"},{"市名": "阳泉","编码": "101100301"},{"市名": "晋中","编码": "101100401"},{"市名": "晋城","编码": "101100601"},{"市名": "吕梁","编码": "101101100"}]},{"省": "新疆","市": [{"市名": "乌鲁木齐","编码": "101130101"},{"市名": "石河子","编码": "101130301"},{"市名": "昌吉","编码": "101130401"},{"市名": "吐鲁番","编码": "101130501"},{"市名": "库尔勒","编码": "101130601"},{"市名": "阿拉尔","编码": "101130701"},{"市名": "阿克苏","编码": "101130801"},{"市名": "喀什","编码": "101130901"},{"市名": "伊宁","编码": "101131001"},{"市名": "塔城","编码": "101131101"},{"市名": "哈密","编码": "101131201"},{"市名": "和田","编码": "101131301"},{"市名": "阿勒泰","编码": "101131401"},{"市名": "阿图什","编码": "101131501"},{"市名": "博乐","编码": "101131601"},{"市名": "克拉玛依","编码": "101130201"}]},{"省": "西藏","市": [{"市名": "拉萨","编码": "101140101"},{"市名": "山南","编码": "101140301"},{"市名": "阿里","编码": "101140701"},{"市名": "昌都","编码": "101140501"},{"市名": "那曲","编码": "101140601"},{"市名": "日喀则","编码": "101140201"},{"市名": "林芝","编码": "101140401"}]},{"省": "台湾","市": [{"市名": "台北县","编码": "101340101"},{"市名": "高雄","编码": "101340201"},{"市名": "台中","编码": "101340401"}]},{"省": "海南省","市": [{"市名": "海口","编码": "101310101"},{"市名": "三亚","编码": "101310201"},{"市名": "东方","编码": "101310202"},{"市名": "临高","编码": "101310203"},{"市名": "澄迈","编码": "101310204"},{"市名": "儋州","编码": "101310205"},{"市名": "昌江","编码": "101310206"},{"市名": "白沙","编码": "101310207"},{"市名": "琼中","编码": "101310208"},{"市名": "定安","编码": "101310209"},{"市名": "屯昌","编码": "101310210"},{"市名": "琼海","编码": "101310211"},{"市名": "文昌","编码": "101310212"},{"市名": "保亭","编码": "101310214"},{"市名": "万宁","编码": "101310215"},{"市名": "陵水","编码": "101310216"},{"市名": "西沙","编码": "101310217"},{"市名": "南沙岛","编码": "101310220"},{"市名": "乐东","编码": "101310221"},{"市名": "五指山","编码": "101310222"},{"市名": "琼山","编码": "101310102"}]},{"省": "湖南","市": [{"市名": "长沙","编码": "101250101"},{"市名": "株洲","编码": "101250301"},{"市名": "衡阳","编码": "101250401"},{"市名": "郴州","编码": "101250501"},{"市名": "常德","编码": "101250601"},{"市名": "益阳","编码": "101250700"},{"市名": "娄底","编码": "101250801"},{"市名": "邵阳","编码": "101250901"},{"市名": "岳阳","编码": "101251001"},{"市名": "张家界","编码": "101251101"},{"市名": "怀化","编码": "101251201"},{"市名": "黔阳","编码": "101251301"},{"市名": "永州","编码": "101251401"},{"市名": "吉首","编码": "101251501"},{"市名": "湘潭","编码": "101250201"}]},{"省": "江苏","市": [{"市名": "南京","编码": "101190101"},{"市名": "镇江","编码": "101190301"},{"市名": "苏州","编码": "101190401"},{"市名": "南通","编码": "101190501"},{"市名": "扬州","编码": "101190601"},{"市名": "宿迁","编码": "101191301"},{"市名": "徐州","编码": "101190801"},{"市名": "淮安","编码": "101190901"},{"市名": "连云港","编码": "101191001"},{"市名": "常州","编码": "101191101"},{"市名": "泰州","编码": "101191201"},{"市名": "无锡","编码": "101190201"},{"市名": "盐城","编码": "101190701"}]},{"省": "黑龙江","市": [{"市名": "哈尔滨","编码": "101050101"},{"市名": "牡丹江","编码": "101050301"},{"市名": "佳木斯","编码": "101050401"},{"市名": "绥化","编码": "101050501"},{"市名": "黑河","编码": "101050601"},{"市名": "双鸭山","编码": "101051301"},{"市名": "伊春","编码": "101050801"},{"市名": "大庆","编码": "101050901"},{"市名": "七台河","编码": "101051002"},{"市名": "鸡西","编码": "101051101"},{"市名": "鹤岗","编码": "101051201"},{"市名": "齐齐哈尔","编码": "101050201"},{"市名": "大兴安岭","编码": "101050701"}]},{"省": "吉林","市": [{"市名": "长春","编码": "101060101"},{"市名": "延吉","编码": "101060301"},{"市名": "四平","编码": "101060401"},{"市名": "白山","编码": "101060901"},{"市名": "白城","编码": "101060601"},{"市名": "辽源","编码": "101060701"},{"市名": "松原","编码": "101060801"},{"市名": "吉林","编码": "101060201"},{"市名": "通化","编码": "101060501"}]},{"省": "辽宁","市": [{"市名": "沈阳","编码": "101070101"},{"市名": "鞍山","编码": "101070301"},{"市名": "抚顺","编码": "101070401"},{"市名": "本溪","编码": "101070501"},{"市名": "丹东","编码": "101070601"},{"市名": "葫芦岛","编码": "101071401"},{"市名": "营口","编码": "101070801"},{"市名": "阜新","编码": "101070901"},{"市名": "辽阳","编码": "101071001"},{"市名": "铁岭","编码": "101071101"},{"市名": "朝阳","编码": "101071201"},{"市名": "盘锦","编码": "101071301"},{"市名": "大连","编码": "101070201"},{"市名": "锦州","编码": "101070701"}]}]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hot100:链表倒数k个节点- 力扣(LeetCode)

题目&#xff1a; 实现一种算法&#xff0c;找出单向链表中倒数第 k 个节点。返回该链表中倒数第k个节点。 示例一&#xff1a; 输入&#xff1a;{1,2,3,4,5},2 返回值&#xff1a;{4,5} 说明&#xff1a;返回倒数第2个节点4&#xff0c;系统会打印后面所有的节点来比较。 …

Spring AI 实战:第十一章、Spring AI Agent之知行合一

引言:智能体的知行辩证法 “知为行之始,行为知之成”,王阳明的哲学智慧在AI时代焕发光彩。智能体(LLM Agent)的进化之路,正是"认知-决策-执行"这一闭环的完美诠释: 知明理:融合大语言模型的推理能力与知识图谱的结构化认知行致用:基于ReAct模式的动态工具调…

365打卡第R6周: LSTM实现糖尿病探索与预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 &#x1f3e1; 我的环境&#xff1a; 语言环境&#xff1a;Python3.10 编译器&#xff1a;Jupyter Lab 深度学习环境&#xff1a;torch2.5.1 torchvision0…

W-TinyLFU缓存驱逐算法解析

文章目录 1. 背景与概述1.1 什么是缓存驱逐算法1.2 W-TinyLFU 的定义与价值 2. 核心思想与设计理念2.1 时间局部性与频率局部性的结合2.2 高效的频率统计2.3 窗口机制的引入 3. 架构设计与组件3.1 整体架构3.2 窗口缓存&#xff08;Window Cache&#xff09;3.3 主缓存&#xf…

[特殊字符] 人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总) [特殊字符]

Large Language Model (LLM) 即大规模语言模型&#xff0c;是一种基于深度学习的自然语言处理模型&#xff0c;它能够学习到自然语言的语法和语义&#xff0c;从而可以生成人类可读的文本。 所谓 "语言模型"&#xff0c;就是只用来处理语言文字&#xff08;或者符号…

文章记单词 | 第60篇(六级)

一&#xff0c;单词释义 liar&#xff1a;英 [ˈlaɪə(r)]&#xff1b;美 [ˈlaɪər]&#xff1b;n. 说谎者verbal&#xff1a;英 [ˈvɜːbl]&#xff1b;美 [ˈvɜːrbl]&#xff1b;adj. 言语的&#xff1b;文字的&#xff1b;口头的&#xff1b;动词的comprehension&…

AI日报 · 2025年04月30日|OpenAI 回滚 GPT-4o 更新以解决“谄媚”问题

过去24小时&#xff0c;全球人工智能领域持续快速发展。从模型行为调整到平台工具更新&#xff0c;再到行业安全规范的探讨&#xff0c;以下是为您精选的重点动态&#xff1a; 1、OpenAI 回滚 GPT-4o 更新以解决“谄媚”问题 针对用户反馈最新版 GPT-4o 模型表现出过度“谄媚…

Linux54 源码包的安装、修改环境变量解决 axel命令找不到;getfacl;测试

始终报错 . 补充链接 tinfo 库时报错软件包 ncurses-devel-5.9-14.20130511.el7_4.x86_64 已安装并且是最新版本 没有可用软件包 tinfo-devel。 无须任何处理 make LDLIBS“-lncurses"报错编译时报错make LDLIBS”-lncurses" &#xff1f; /opt/rh/devtoolset-11/roo…

FPGA----基于ZYNQ 7020实现EPICS通信系统

1、本实验过程来自博b站大神《神电测控》&#xff0c;原文地址&#xff1a; EPICS实战(上位机篇)&#xff1a;基于LV ZYNQ实现的EPICS通信系统(大物理) - 哔哩哔哩https://www.bilibili.com/opus/933476043369480224EPICS实战(下位机篇)&#xff1a;基于LV ZYNQ实现的EPICS通信…

实验四 增强型可靠文件传输系统

一、实验目的和任务 掌握基于队列的多文件传输机制理解断点续传的实现原理学习文件传输完整性保障方法 二、实验内容 基础功能验证 单文件传输功能测试服务器状态监控测试传输日志记录验证 新增功能实现 多文件队列传输功能断点续传支持 三、实验步骤 4.1 客户端功能扩…

网络Tips20-003

1.E1载波的控制开销占2/32*100%6.25%&#xff0c;E1载波的基本帧传送时间是125uS。 2.计算机在一个指令周期的过程中&#xff0c;为从内存读取指令操作码&#xff0c;首先要将.程序计数器(PC)的内容送到地址总线上 3.3DES算法:密码学中&#xff0c;3DES是三重数据加密算法通称…

【MySQL】索引(重要)

目录 一、索引本质&#xff1a; 索引的核心作用 索引的优缺点 二、预备知识&#xff1a; 硬件理解&#xff1a; 软件理解&#xff1a; MySQL与磁盘交互基本单位&#xff1a; 三、索引的理解&#xff1a; 理解page&#xff1a; 单个page&#xff1a; 多个page&#x…

【深入浅出MySQL】之数据类型介绍

【深入浅出MySQL】之数据类型介绍 MySQL中常见的数据类型一览为什么需要如此多的数据类型数值类型BIT&#xff08;M&#xff09;类型INT类型TINYINT类型BIGINT类型浮点数类型float类型DECIMAL(M,D)类型区别总结 字符串类型CHAR类型VARCHAR(M)类型 日期和时间类型enum和set类型 …

数字化时代下,软件测试中的渗透测试是如何保障安全的?

在如今数字化与信息化的时代&#xff0c;软件测试中存在渗透测试&#xff0c;其位置十分重要&#xff0c;它借助模拟恶意攻击的方式&#xff0c;去发现软件系统所存在的漏洞以及安全问题&#xff0c;这是保障软件安全的关键环节&#xff0c;接下来我会对它的各个方面进行详细介…

Pytorch - Developer Notes 1/2

文章目录 自动混合精度示例典型的混合精度训练处理未缩放梯度梯度裁剪 处理缩放梯度梯度累积梯度惩罚 处理多个模型、损失函数和优化器多 GPU 工作环境下的注意事项单进程中的DataParallel分布式数据并行&#xff1a;每个进程对应一个GPU每个进程使用多块GPU的DistributedDataP…

RuntimeError: CUDA error: __global__ function call is not configured

表明在 CUDA 设备上调用的核函数 没有正确配置线程块和网格维度。 一般体现在&#xff1a; 直接调用 kernel 函数&#xff0c;而不是通过 launch 函数 指定 kernel 函数调用 解决方法&#xff08;示例&#xff09;&#xff1a; // kernel function __global__ void Idtest_k…

cloudfare+gmail 配置 smtp 邮箱

这里介绍有一个域名后&#xff0c;不需要服务器&#xff0c;就可以实现 cloudfare gmail 的 邮箱收发。 为什么还需要 gmail 的 smtp 功能&#xff0c;因为 cloudfare 默认只是对 email 进行转发&#xff0c;就是只能收邮件而不能发送邮件&#xff0c;故使用 gmail 的功能来进…

如何在 CentOS 7 命令行连接 Wi-Fi?如何在 Linux 命令行连接 Wi-Fi?

如何在 CentOS 7 命令行连接 Wi-Fi&#xff1f;如何在 Linux 命令行连接 Wi-Fi&#xff1f; 摘要 本教程覆盖如何在多种 Linux 发行版下通过命令行连接 Wi-Fi&#xff0c;包括&#xff1a; CentOS 7、Ubuntu、Debian、Arch Linux、Fedora、Alpine Linux、Kali Linux、OpenSU…

基于PHP的在线编程课程学习系统

有需要请加文章底部Q哦 可远程调试 基于PHP在线编程课程学习系统 一 介绍 在线编程课程学习系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端jquery.js。系统角色分为学生&#xff0c;教师和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqljquery.jsphps…

PyTorch_张量形状操作

搭建模型时&#xff0c;数据都是基于张量形式的表示&#xff0c;网络层与层之间很多都是以不同的shape的方式进行表现和运算。 对张量形状的操作&#xff0c;以便能够更好处理网络各层之间的数据连接。 reshape 函数的用法 reshape 函数可以再保证张量数据不变的前提下改变数…