【频谱管理】保存无线电频率划分规定到excel/数据库

项目需要,好像还没人做过,没有参考资料

任务介绍

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

把非结构化数据变为结构化数据,无线电频率划分规定下载链接
任务是把word文档转存在数据库中方便管理。
工具:python+docx+pandas
需要处理一下原始数据:
因为khz/Mhz/Ghz都在一起了
处理后的目录:
在这里插入图片描述
代码和处理后的文件放在我的github仓库
直接代码:

from docx import Document
import pandas as pd

list_ = []  # 初始化一个空列表,用来装后面的数据字典


# 处理khz
path = "khz.docx"
docx = Document(path)
for table in docx.tables:  # 循环所有的表格
    row_counter = 0  # 初始化行计数器
    for row in table.rows:  # 循环表格中的所有行
        row_counter += 1  # 每次循环时,增加行计数器
        if row_counter <= 2:  # 如果是前两行,则跳过
            continue
        cells = row.cells  # 获取当前行的所有单元格
        # 假设每个单元格中的内容都是通过换行符分隔的
        # 并且第一列包含了起始频率和结束频率,用"—"分隔
        # 其余列包含了业务信息
        if cells:
            item = cells[0].text
            dict_ = {
                '起始频率(KHz)': str(item.split("\n")[0]).split("—")[0],
                '结束频率(KHz)': str(item.split("\n")[0]).split("—")[1],
                '业务': ','.join(item.split("\n")[1:])
            }
            list_.append(dict_)  # 将字典添加到列表中


# Mhz,需要成1000
# 处理khz
path = "mhz.docx"
docx = Document(path)
for table in docx.tables:  # 循环所有的表格
    row_counter = 0  # 初始化行计数器
    for row in table.rows:  # 循环表格中的所有行
        row_counter += 1  # 每次循环时,增加行计数器
        if row_counter <= 2:  # 如果是前两行,则跳过
            continue
        cells = row.cells  # 获取当前行的所有单元格
        # 假设每个单元格中的内容都是通过换行符分隔的
        # 并且第一列包含了起始频率和结束频率,用"—"分隔
        # 其余列包含了业务信息
        if cells:
            item = cells[0].text
            temp=str(item.split("\n")[0]).replace(' ', '')
            dict_ = {
                '起始频率(KHz)': float(temp.split("—")[0])*1000,
                '结束频率(KHz)': float(temp.split("—")[1])*1000,
                '业务': ','.join(item.split("\n")[1:])
            }
            list_.append(dict_)  # 将字典添加到列表中


# GHZ 需要乘以1000 *1000
path = "Ghz.docx"
docx = Document(path)
for table in docx.tables:  # 循环所有的表格
    row_counter = 0  # 初始化行计数器
    for row in table.rows:  # 循环表格中的所有行
        row_counter += 1  # 每次循环时,增加行计数器
        if row_counter <= 2:  # 如果是前两行,则跳过
            continue
        cells = row.cells  # 获取当前行的所有单元格
        # 假设每个单元格中的内容都是通过换行符分隔的
        # 并且第一列包含了起始频率和结束频率,用"—"分隔
        # 其余列包含了业务信息
        if cells:
            item = cells[0].text
            temp=str(item.split("\n")[0]).replace(' ', '')
            dict_ = {
                '起始频率(KHz)': float(temp.split("—")[0])*1000*1000,
                '结束频率(KHz)': float(temp.split("—")[1])*1000*1000,
                '业务': ','.join(item.split("\n")[1:])
            }
            list_.append(dict_)  # 将字典添加到列表中

# 将列表转换为DataFrame
df = pd.DataFrame(list_)

# 将DataFrame保存为Excel文件
excel_path = "alldata.xlsx"
df.to_excel(excel_path, index=False)

print(f"数据已保存至 {excel_path}")

得到excel数据如下:
在这里插入图片描述
参考地址读入mysql数据库,展示如下:
在这里插入图片描述

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值