ChatGPT工作提效之使用python开发对接百度地图开放平台API的实战方案(批量路线规划、批量获取POI、突破数量有限制、批量地理编码)

news2024/11/24 20:40:09

ChatGPT工作提效系列文章目录

ChatGPT工作提效系列

  1. ChatGPT工作提效之初探路径独孤九剑遇强则强
  2. ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)
  3. ChatGPT工作提效之生成开发需求和报价单并转为Excel格式
  4. ChatGPT工作提效之小鹅通二次开发批量API对接解决方案(学习记录同步、用户注册同步、权益订购同步、开发文档)

使用python开发对接百度地图开放平台API的实战方案

  • ChatGPT工作提效系列文章目录
  • ChatGPT工作提效系列
  • 前言
  • 一、批量经纬度坐标路线规划
  • 二、批量爬取某城市指定类目POI
    • 1.爬取POI 数量有限制
    • 2.突破POI 数量有限制
    • 3.百度地图API升级与ChatGPT的旧代码冲突
  • 三、获取当前城市的天气情况
  • 四、批量地理编码
  • 总结


前言

一般来说,利用 Python 对接百度地图开放平台 API 主要有以下几种方式:

  1. 直接通过 requests 请求发送 HTTP 请求,获取响应结果。

这种方式比较简单直接,可以通过 requests 库发送 GET、POST 等不同类型的请求,获取响应结果后进行解析和处理。示例代码:

import requests

# 百度地图 API 地址
url = "https://api.map.baidu.com/place/v2/search"

# 请求参数
params = {
    "query": "酒店",
    "region": "北京",
    "output": "json",
    "ak": "你的百度地图开发者密钥"
}

# 发送请求
response = requests.get(url, params=params)

# 处理响应结果
if response.status_code == 200:
    json_data = response.json()
    # 进行数据解析和处理
else:
    print("请求失败,状态码为", response.status_code)
  1. 使用百度地图 Python SDK 进行操作。

百度提供了 Python SDK 接口,可以方便地实现地理编码、路线规划、地图可视化等功能。SDK 中提供了丰富的 API 接口,也支持上传数据到百度云存储等操作。使用 SDK,需要先安装并导入百度地图的 Python SDK 包,示例代码:

from baidumap.api import PlaceSearch

ak = "你的百度地图开发者密钥"

params = {
    "query": "酒店",
    "region": "北京",
    "output": "json"
}

search = PlaceSearch(ak=ak)
res = search.place_search(**params)

if res.status == 0:
    print(res.results)
else:
    print("请求失败,状态码为", res.status)
  1. 使用百度地图开放平台提供的其他开发接口实现。

百度地图开放平台提供了多个开发接口,比如 JavaScript API、Web API、移动端 API 等等,选择适合自己场景的 API 接口可以更加方便地实现自己的应用和功能。每个接口都会提供详细的 API 文档和示例,根据需求选择合适的 API 接口进行开发即可。

那么如何利用ChatGPT来提效呢?


一、批量经纬度坐标路线规划

百度地图路线规划什么意思

百度地图路线规划,是指根据起始地点和终止地点,使用百度地图提供的驾车、步行或公交等不同出行方式,计算出最优路径和行驶时间等信息的过程。具体来说,百度地图路线规划通常包含以下几个步骤:

  1. 解析起始地点和终止地点的坐标:用户输入的起始地点和终止地点一般是以地址的形式呈现,需要通过地理编码的技术将其转换为经纬度坐标。

  2. 根据不同出行方式选择最优路径:根据用户选择的出行方式(驾车、步行、公交等),通过算法和实时交通情况,选择并规划出一条最优路径。其中,驾车路径规划还包括交通限制、高速费用、实时路况等因素的考虑。

  3. 计算行驶距离和时间:在规划出最优路径后,通过计算路径距离和行驶时间等指标,提供给用户参考。

  4. 显示路径和导航:将规划的路径展示到地图上,标注主要路线和途经的关键点,并提供导航和语音提示等辅助功能。

通过百度地图路线规划,可帮助人们更好地了解出行路线、行驶距离、行驶时间等相关信息,方便出行安排和交通规划。

如何批量实现起始点路线规划,进行计算距离和耗时,封装成一个函数,并导出excle表格。

以下是一个将起始点路线规划计算封装成函数,并批量计算距离和耗时,并导出 Excel 表格的 Python 代码示例:

首先,安装必要的依赖:

pip install requests openpyxl

然后,导入需要的模块:

import requests
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Alignment

最后,定义封装函数并调用:

def calculate_distance_duration(api_key, origins, destinations, excel_file_path):
    """
    计算起始点路线规划的距离和耗时,并保存到 Excel 表格中
    :param api_key: 百度地图开发者密钥
    :param origins: 起点坐标列表,每个元素为一个字符串,如 ['116.43213,39.99858', '116.118904, 24.46807']
    :param destinations: 终点坐标列表,每个元素为一个字符串
    :param excel_file_path: Excel 文件路径
    :return: 返回导出的 Excel 表格路径
    """
    # 定义 API 路径和请求参数
    api_url = 'http://api.map.baidu.com/direction/v2/driving'
    api_params = {
        'ak': api_key,
    }

    # 创建 Excel 工作簿和工作表
    wb = openpyxl.Workbook()
    ws = wb.active

    # 创建表头
    ws['A1'] = '起始点'
    ws['B1'] = '终点'
    ws['C1'] = '距离(米)'
    ws['D1'] = '耗时(分钟)'

    # 格式化表头
    for cell in ws[1]:
        cell.font = openpyxl.styles.Font(bold=True)
        cell.alignment = Alignment(horizontal='center', vertical='center')

    # 遍历起始点和终点坐标列表,计算路线规划
    for i, origin in enumerate(origins, start=2):
        for j, destination in enumerate(destinations, start=2):
            # 构造请求参数
            api_params.update({
                'origin': origin,
                'destination': destination,
            })

            # 发送请求
            response = requests.get(api_url, params=api_params)
            if response.status_code == 200:
                # 解析响应
                json_data = response.json()
                routes = json_data['result']['routes']
                if routes:
                    # 获取最短路线方案
                    route = min(routes, key=lambda x: x['distance'])

                    # 提取距离和时间
                    distance = route['distance']
                    duration = route['duration'] // 60

                    # 将结果保存到 Excel 表格中
                    row = [origin, destination, distance, duration]
                    for k, value in enumerate(row, start=1):
                        cell = ws.cell(row=i, column=k, value=value)
                        cell.alignment = Alignment(horizontal='center', vertical='center')
                else:
                    print(f'未找到起点 {origin} 和终点 {destination} 之间的路线规划')
            else:
                print(f'获取起点 {origin} 和终点 {destination} 的路线规划失败,状态码:{response.status_code}')

    # 自适应列宽
    for column in ws.columns:
        column_letter = get_column_letter(column[0].column)
        ws.column_dimensions[column_letter].width = max(len(str(cell.value)) for cell in column)

    # 保存 Excel 文件,并返回文件路径
    wb.save(excel_file_path)

    return excel_file_path

使用示例:

# 测试数据
my_api_key = 'your_api_key'
start_locations = ['116.43213,39.99858', '116.118904, 24.46807']
end_locations = ['116.43187,39.99765', '117.2428, 31.8427']

# 计算起始点路线规划的距离和耗时,并保存到 Excel 表格中
calculate_distance_duration(my_api_key, start_locations, end_locations, '计算距离.xlsx')

其中,参数 api_key 为你的百度地图开发者密钥,`origins

二、批量爬取某城市指定类目POI

使用python如何批量爬取某城市指定类目POI,如杭州市拱墅区美食的兴趣点,并导出excel表格,具体代码怎么写

1.爬取POI 数量有限制

以下是使用 Python 爬取某城市指定类目 POI(例如杭州市拱墅区美食)并导出 Excel 表格的代码示例:

import requests
import openpyxl

# 输入百度地图开发者密钥
MY_API_KEY = 'your_api_key'

# 定义 API 路径
url = 'http://api.map.baidu.com/place/v2/search'

# 起点坐标和查询类别
query = '美食'
region = '杭州市拱墅区'
page_size = 20  # 每页数据量,最大为 20
page_num = 0  # 起始页码

# 创建 Excel 工作簿和工作表
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = '名称'
ws['B1'] = '经度'
ws['C1'] = '纬度'
ws['D1'] = '地址'

# 循环爬取每一页的数据
while True:
    # 构建请求参数
    payload = {
        'query': query,
        'region': region,
        'ak': MY_API_KEY,
        'output': 'json',
        'page_size': page_size,
        'page_num': page_num,
    }

    # 发送请求
    response = requests.get(url, params=payload)
    if response.status_code != 200:
        print('请求错误', response.status_code)
        break

    # 解析响应
    json_data = response.json()
    if json_data.get('status') != 0:
        print(f"获取 {region} {query} 数据失败: {json_data.get('message')}")
        break

    # 获取总记录数和当前页码的数据
    total = json_data.get('total')
    results = json_data.get('results')

    # 将当前页码的数据写入 Excel 表格
    for i, result in enumerate(results, start=2 + page_num * page_size):
        name = result.get('name')
        location = result.get('location')
        address = result.get('address')
        ws.cell(row=i, column=1, value=name or '')
        ws.cell(row=i, column=2, value=location.get('lng', '') or '')
        ws.cell(row=i, column=3, value=location.get('lat', '') or '')
        ws.cell(row=i, column=4, value=address or '')

    # 如果已经获取了总记录数,则跳出循环
    if total:
        if page_num * page_size + len(results) >= total:
            break

    # 自增页码
    page_num += 1

# 自适应列宽
for column in ws.columns:
    cell = max(column, key=lambda x: len(str(x.value)))
    width = min(100, max(10, len(str(cell.value))))
    ws.column_dimensions[cell.column_letter].width = width

# 保存 Excel 文件
wb.save(f"{region}{query}.xlsx")

需要注意以下几点:

  1. 首先,需要在百度地图开放平台上注册并获取自己的开发者密钥 MY_API_KEY。
  2. 请求路径参数 url 中的 /place/v2/search 表示的是 POI 搜索,如果要获取其他类型的信息,需要更改请求路径,具体可以参考官方文档。
  3. 请求参数 payload 中的 queryregion 分别表示查询类别和查询地点,在实际使用中,可以根据自己的需求进行更改,如 美食 可以改成 酒店 或其他类别,杭州市拱墅区 可以改成 浙江省杭州市 或其他地点。
  4. 更改请求参数中的 page_size 可以控制每页数据量,最大值为 20。
  5. 结果会在工作簿第一个活动工作表中创建,包含 POI 的名称、经度、纬度和地址信息。
  6. 自适应列宽代码可以让每一列的宽度自适应单元格内容的长度。
  • 生成的POI地址,因百度地图接口的显示,数量不多;

在这里插入图片描述

2.突破POI 数量有限制

百度地图 API 请求返回的 POI 数量有限制,即每个开发者密钥每天只能调用一定次数的 API 接口,并且每个查询请求也有最大结果数、页码等限制。如果需要尽可能获取更多的 POI,可以参考以下几点:

  1. 在多个城市或区域中查询,可以通过 region 参数传递多个城市或区域的信息,例如 '杭州市拱墅区|杭州市西湖区|杭州市余杭区'
  2. 增加查询关键词的精度或缩小查询范围,例如可以使用 '火锅|串串香|川菜' 替代 '美食'
  3. 对于一个城市或一个区域,可以通过循环调用多个页面的方式来获取更多的结果,例如设置 page_num 的初始值不为 0,并不断自增 page_num 直至达到最大页码数或者超过总的记录数。例如,可以设置 max_page_num = 20 或其他自定义值,最大也不得超过 ceil(total / page_size)

下面是修改过后的代码示例:

import math

import requests
import openpyxl


# 输入百度地图开发者密钥
MY_API_KEY = 'your_api_key'

# 定义 API 路径
url = 'http://api.map.baidu.com/place/v2/search'

# 起点坐标和查询类别
query = '火锅|串串香|川菜'
region = '杭州市拱墅区'
page_size = 20  # 每页数据量,最大为 20
page_num = 0  # 起始页码
max_page_num = 100  # 最大页码数,最大不得超过 ceil(total / page_size)

# 创建 Excel 工作簿和工作表
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = '名称'
ws['B1'] = '经度'
ws['C1'] = '纬度'
ws['D1'] = '地址'

# 获取总记录数
total = None

while not total or page_num * page_size < total:
    # 构建请求参数
    payload = {
        'query': query,
        'region': region,
        'ak': MY_API_KEY,
        'output': 'json',
        'page_size': page_size,
        'page_num': page_num,
    }

    # 发送请求
    response = requests.get(url, params=payload)
    if response.status_code != 200:
        print('请求错误', response.status_code)
        break

    # 解析响应
    json_data = response.json()
    if json_data.get('status') != 0:
        print(f"获取 {region} {query} 数据失败: {json_data.get('message')}")
        break

    # 获取总记录数
    if total is None:
        total = json_data.get('total')

    # 获取当前页码的数据
    results = json_data.get('results')

    # 将当前页码的数据写入 Excel 表格
    for i, result in enumerate(results, start=2 + page_num * page_size):
        name = result.get('name')
        location = result.get('location')
        address = result.get('address')
        ws.cell(row=i, column=1, value=name or '')
        ws.cell(row=i, column=2, value=location.get('lng', '') or '')
        ws.cell(row=i, column=3, value=location.get('lat', '') or '')
        ws.cell(row=i, column=4, value=address or '')

    # 自增页码
    page_num += 1

    # 如果已经获取了总记录数,则控制最大页码数
    if total is not None:
        max_page_num = min(math.ceil(total / page_size), max_page_num)

    # 如果达到最大页码数,则跳出
    if page_num >= max_page_num:
        break

# 自适应列宽
for column in ws.columns:
    cell = max(column, key=lambda x: len(str(x.value)))
    width = min(100, max(10, len(str(cell.value))))
    ws.column_dimensions[cell.column_letter].width = width

# 保存 Excel 文件
wb.save(f"{region}{query}.xlsx")

需要注意以下几点:

  • 在获取查询结果总记录数时,只需要获取一次即可,可以通过判断 total 是否为 None 来控制。获取到 total 后,可以计算出最大页码数,确保不会超过 ceil(total / page_size)
  • 循环爬取每一页的数据时,可以通过 page_num * page_size < total 的判断条件来控制循环次数,并在到达最大页码数后及时跳出循环,避免超调用 API 接口次数。
  • 增加查询词和查询地点的精度或范围可以控制返回结果数量。查询结果数量过大时,需要对数据进行去重、排序、过滤等处理,以避免数据冗余和格式不统一的问题。

3.百度地图API升级与ChatGPT的旧代码冲突

在调试的过程中,由于近期百度地图的升级,ChatGPT生成的代码还是老的版本,无法直接运行。需要我们重新梳理,借鉴ChatGPT的算法。

  • 构建请求参数的变化
    # 构建请求参数
    payload = {
        'query': '酒店',
        "tag": "商务酒店,招待所,星级酒店",
        'region': '浙江省杭州市拱墅区',
        'ak': MY_API_KEY,
        'output': 'json',
        'page_size': 20,
        'page_num': 0,
    }

在这里插入图片描述

  • ‘APP 服务被禁用’

{‘status’: 240, ‘message’: ‘APP 服务被禁用’}的解决方案:替换成服务端的ak,也是近期的百度地图升级。
在这里插入图片描述

  • origin or destination is invalid,起始点无效。

{‘status’: 2, ‘message’: ‘origin or destination is invalid’}的解决方案:API路径和请求参数的升级,参照官网比对。

在这里插入图片描述


三、获取当前城市的天气情况

使用百度地图开放平台,获取当前城市的天气情况,代码怎么写

以下是使用百度地图开放平台,获取当前城市天气情况的 Python 代码示例:

import requests

# 输入百度地图开发者密钥
MY_API_KEY = 'your_api_key'

# 获取当前 IP 和城市信息
ip_api_url = 'http://api.map.baidu.com/location/ip'
payload = {
    'ak': MY_API_KEY,
    'ip': '',
    'coor': 'bd09ll',
}
response = requests.get(ip_api_url, params=payload)
if response.status_code != 200:
    print('请求错误', response.status_code)
    raise SystemExit(0)
json_data = response.json()
if json_data.get('status') != 0:
    print(f"获取 IP 地址数据失败: {json_data.get('message')}")
    raise SystemExit(0)
city_name = json_data['address_detail']['city']

# 获取城市天气数据
weather_api_url = 'http://api.map.baidu.com/weather/v1'
payload = {
    'district_id': '',
    'output': 'json',
    'ak': MY_API_KEY,
}
response = requests.get(weather_api_url, params=payload)
if response.status_code != 200:
    print('请求错误', response.status_code)
    raise SystemExit(0)
json_data = response.json()
if json_data.get('status') != 0:
    print(f"获取天气数据失败: {json_data.get('message')}")
    raise SystemExit(0)

# 解析天气数据
weather_data = {}
for city in json_data['result']:
    if city_name in (city.get('name', ''), city.get('alias', '')):
        weather_data = {
            '城市': city_name,
            '天气': city['weather_data'][0]['wea'],
            '温度': city['weather_data'][0]['tem'],
            '风向': city['weather_data'][0]['win'],
            '湿度': city['weather_data'][0]['humidity'],
            '空气质量': city['air'],
            '更新时间': city['update_time'],
        }
        break

# 输出天气数据
if weather_data:
    print(f"城市: {weather_data['城市']}")
    print(f"天气: {weather_data['天气']}")
    print(f"温度: {weather_data['温度']}")
    print(f"风向: {weather_data['风向']}")
    print(f"湿度: {weather_data['湿度']}")
    print(f"空气质量: {weather_data['空气质量']}")
    print(f"更新时间: {weather_data['更新时间']}")
else:
    print(f"当前城市:{city_name} 无天气数据")

需要注意以下几点:

  1. 首先需要在百度开放平台上注册并获取密钥 MY_API_KEY
  2. 获取当前 IP 和城市信息,可以通过发送请求访问百度地图开放 API 的 location/ip 接口,然后解析返回的 JSON 数据来获取 IP 地址和城市信息。
  3. 获取城市天气数据,可以通过发送请求访问百度地图开放 API 的 weather/v1 接口,然后将查询结果中包含当前城市天气数据的条目提取出来。
  4. 天气结果中包含城市、天气、温度、风向、湿度、空气质量和更新时间等信息,可以针对不同的信息进行处理、显示或统计。

在这里插入图片描述

如何解决获取 IP 地址数据失败: Unkown Error:no ipv6 permission, please apply through feedback

百度地图开放平台的 location/ip 接口是需要用户的设备支持 IPv6 协议才能正常使用的,否则会出现 Unkown Error:no ipv6 permission, please apply through feedback 的错误提示。

为了解决此问题,可以参考以下两种方法:

  1. 在设备上开启 IPv6 协议支持。具体的开启方式和步骤会因设备和系统版本而不同,可以在设备设置中进行查找和开启。
  2. 向百度地图开放平台反馈问题。如果设备无法支持 IPv6 协议,则可以向百度地图开放平台反馈该问题,请求其增加对 IPv4 协议的支持。具体的操作流程可以参考百度地图开放平台的官方文档。

四、批量地理编码

如何使用百度地图web API,对地址批量进行转换为经纬度坐标,并输出excel
在这里插入图片描述

可以使用百度地图 web API 的 Geocoding API 接口实现将批量地址转换为经纬度坐标,并将结果输出到 Excel 文件中。以下是 Python 代码示例:

import requests
import openpyxl

# 输入百度地图开发者密钥和读取的地址列表(每个地址占据列表中一行)
MY_API_KEY = 'your_api_key'
addr_list = ['浙江省杭州市西湖区浙江大学紫金港校区1号楼', '浙江省杭州市西湖区浙江大学紫金港校区2号楼']

# 定义 API 路径和 Excel 文件名
url = 'http://api.map.baidu.com/geocoding/v3/'
excel_file = '地址坐标.xlsx'

# 创建 Excel 工作簿和工作表
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = '地址'
ws['B1'] = '经度'
ws['C1'] = '纬度'

# 循环获取地址坐标并写入 Excel 表格
for i, addr in enumerate(addr_list, start=2):
    payload = {'address': addr, 'output': 'json', 'ak': MY_API_KEY}
    response = requests.get(url, params=payload)
    if response.status_code != 200:
        print('请求错误', response.status_code)
        break
    json_data = response.json()
    if json_data.get('status') != 0:
        print(f"获取坐标数据失败: {json_data.get('message')}")
        break
    location = json_data['result']['location']
    ws.cell(row=i, column=1, value=addr or '')
    ws.cell(row=i, column=2, value=location.get('lng', '') or '')
    ws.cell(row=i, column=3, value=location.get('lat', '') or '')

# 自适应列宽
for column in ws.columns:
    cell = max(column, key=lambda x: len(str(x.value)))
    width = min(100, max(10, len(str(cell.value))))
    ws.column_dimensions[cell.column_letter].width = width

# 保存 Excel 文件
wb.save(excel_file)
print(f"文件{excel_file}保存成功")

需要注意以下几点:

  1. 首先需要在百度开放平台上注册并获取密钥 MY_API_KEY
  2. 将需要查询的地址存储在以地址为元素的列表 addr_list 中,每个地址占据列表中的一行。
  3. 使用 requests 库向百度地图 web API 的 Geocoding API 接口发送查询请求,查询参数为地址和密钥。返回的 JSON 数据中包含地址的经纬度坐标信息。
  4. 将查询结果写入一个新的 Excel 工作簿,并设置工作表的列宽自适应。

总结

ChatGPT是在不断学习和成长中的AI,对于及时更新的信息还达不到实时更新,尤其是对于一些商用平台开放平台API接口,需要技术开发者,在官方文档为主的情况下,借助ChatGPT进行快速有效的技术开发。

@漏刻有时

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

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

相关文章

URLConnection(四)

文章目录 1. 配置客户端请求HTTP首部2. 向服务器写入数据3. URLConnection的安全考虑4. HttpURLConnection 1. 配置客户端请求HTTP首部 HTTP客户端&#xff08;如浏览器&#xff09;向服务器发送一个请求行和一个首部&#xff0c;如下&#xff1a; web服务器可以根据这个信息…

Visual Studio 远程调试工具(Remote Debugger)使用方法

一、关于Remote Debugger 当项目在测试环境上有bug&#xff0c;需要运行代码调试一下&#xff0c;这时就需要在测试环境上安装一个调试工具&#xff08;Remote Debugger&#xff09;&#xff0c;然后在本地运行代码&#xff0c;远程链接到测试环境服务器来调试代码&#xff1b…

算法基础学习笔记——⑦位运算

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨位运算 ✨操作一 &#x1f353;十进制转化成二进制、八进制、十六进制&#xff08;连除法&#xff09; &#x1f353;二进制、八进制、十六进制转化成十进制 &#x1f353;关于原码&#xff0c;反码&am…

Unity四叉树地图

当使用Unity构建大规模的游戏地图或场景时&#xff0c;使用四叉树数据结构可以提高性能和效率。四叉树是一种基于分割的数据结构&#xff0c;将空间划分为四个相等的子区域&#xff0c;并以递归方式构建树结构。在游戏开发中&#xff0c;四叉树常用于空间分区、碰撞检测和可视化…

Eclipse 教程Ⅱ

Eclipse 修改字符集 默认情况下 Eclipse 字符集为 GBK&#xff0c;但现在很多项目采用的是 UTF-8&#xff0c;这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8&#xff0c; 设置步骤如下&#xff1a; 在菜单栏选择 Window -> Preferences -> General -> W…

python的统计函数库scipy.stats是一个很棒的统计包

描述&#xff1a;在Scipy的模块中&#xff0c;有一个统计的木块——States,其中函数有描述统计(describe)、峰度(kurtosis)、偏度(skew)、众数(mode)、n阶矩。 分布&#xff1a;还有一些分布函数&#xff0c;正泰分布(norm)、对数正态分布(lognorm)、…… 计算&#xff1a;针…

Go语言介绍以及Go语言环境安装

初步介绍&#xff1a; Go 是一个开源的编程语言&#xff0c;它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发&#xff0c;后来还加入了Ian Lance Taylor, Russ Cox等人&#xff0c;并最终于2009年11月开源&am…

Manjaro linux 安装svn 并在文件管理器里显示相关图标

需要先安装svn linux版打开终端执行 1 sudo pacman -S svn 安装完成后执行一下 1 svn --version 出现这个就说明svn已经安装完成了&#xff0c;这个时候我们可以执行 1 svn checkout [路径] 就可以检出svn服务器上相关内容了 但是这个有的时候我们打开文件管理器想要看到被…

并发编程的三大特性之原子性

原子性 这个定义是一种规定&#xff0c;描述了Java中的理想就是为了能实现一个操作不能分割&#xff0c;不可中断&#xff0c;一个线程在执行的时候&#xff0c;另一个线程不会去影响他。 Java中的原子性可以理解为多线程操作临界资源&#xff0c;预期的结果和最终的结果一致。…

STM32基本外设超详细44000字教程

GPIO GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口可配置为8种输入输出模式引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V输出模式下可控制端口输出高低电平&#xff0c;用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可…

ML | 5 Logistic回归

ML | 5 Logistic回归 文章目录 ML | 5 Logistic回归Logistic回归思想基于Logistic回归和Sigmoid函数分类基于最优化方法的最佳回归系数确定梯度上升法**梯度上升法例子&#xff1a;**梯度下降法 训练算法&#xff1a;使用梯度上升找到最佳参数画出决策边界 训练算法&#xff1a…

本地是如何开启Nginx服务的?

一、window 配置Nginx服务器 1、Nginx下载地址 http://nginx.org/en/download.html 选择一个适合自己的版本 2、下载后直接解压 3、修改Nginx启动端口 配置文件位置&#xff1a;nginx-1.22.0/conf/nginx.conf 默认80&#xff0c;以防端口被重用&#xff0c;改为8056 4&…

PFEA112-20 3BSE050091R20 张力控制器

您的张力测量系统包括&#xff1a; 张力电子PFEA111或PFEA112–PFEA111是一款经济高效的紧凑型用户友好型张力电子产品&#xff0c;提供 来自两个称重传感器的精确可靠的快速模拟SUM信号&#xff0c;用于控制 和/或监测。显示器可以显示SUM、单个A&B和差异信号小尺寸和DIN导…

k8s 维护node与驱逐pod

1.维护node节点 设置节点状态为不可调度状态&#xff0c;执行以下命令后&#xff0c;节点状态会多出一个SchedulingDisabled的状态&#xff0c;即新建的pod不会往该节点上调度&#xff0c;本身存在node中的pod保持正常运行 kubectl cordon k8s-node01 kubectl get node 2.驱…

多线程并发环境生产者-消费者,kotlin

多线程并发环境生产者-消费者&#xff0c;kotlin 多个生产者-多个消费者&#xff0c;消费者竞争抢占生产者制造的资源。 //存放资源的仓储 val store arrayOfNulls<Int>(1)//资源 var RESOURCE: Int 0fun producer(tid: Long) {synchronized(store) {if (isFull()) {…

【MySQL】- 02MySQL explain执行

目录 1.使用explain语句去查看分析结果2.MYSQL中的组合索引3.使用慢查询分析&#xff08;实用&#xff09;4.MYISAM和INNODB的锁定explain用法详解关于MySQL执行计划的局限性&#xff1a;备注&#xff1a; 1.使用explain语句去查看分析结果 如explain select * from test1 whe…

MicroPython应用基础-准备MicroPython开发板

MicroPython应用基础-准备基于MM32F5的MicroPython开发板 文章目录 MicroPython应用基础-准备基于MM32F5的MicroPython开发板引言硬件软件搭建MicroPython编译环境获取MicroPython源码编译MicroPython源码生成固件下载MicroPython固件到电路板 运行第一个样例工程 引言 本文主…

JavaScript变量、数据类型、运算符

1. 变量 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, in…

GoWeb -- gin框架的入门和使用

认识gin go流行的web框架 go从诞生之初就带有浓重的开源属性&#xff0c;其原生库已经很强大&#xff0c;即使不依赖框架&#xff0c;也能进行高性能开发&#xff0c;又因为其语言并没有一定的设计标准&#xff0c;所以较为灵活&#xff0c;也就诞生了众多的框架&#xff0c;各…

使用朴素贝叶斯过滤垃圾邮件

使用朴素贝叶斯过滤垃圾邮件 文章目录 使用朴素贝叶斯过滤垃圾邮件流程准备数据构建训练集和测试集分类电子邮件 完整测试代码&#xff1a;欢迎关注公众号【三戒纪元】 朴素贝叶斯的最著名的应用&#xff1a;过滤电子邮件垃圾。 流程 收集数据&#xff1a;提供文本文件准备数据…