Skip to content

读取中华人民共和国无线电频率划分规定到数据库

Notifications You must be signed in to change notification settings

youthfulever/read_frequency_band

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

任务介绍

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

把非结构化数据变为结构化数据,无线电频率划分规定下载链接 任务是把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数据库,展示如下: 在这里插入图片描述

About

读取中华人民共和国无线电频率划分规定到数据库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages