您当前的位置: 首页 >  Python

漏刻有时

暂无认证

  • 0浏览

    0关注

    717博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python实现直接读取excle数据实现的百度地图标注

漏刻有时 发布时间:2021-10-07 17:25:21 ,浏览量:0

在这里插入图片描述

项目说明

百度地图标注数据量不大,希望直接读取excle生成标注;同时会有修改、编辑的需求。

项目分析
  1. 项目的没有难点,只有复杂度。如果是将标注信息固定在json或js文件中,即可实现;但是对于非编程人员,进行修改或者编辑的时候,友好性太差。
  2. 读取exlce的优势在于,非编程人员可以直观的修改和编辑标注信息。完成该操作后,通过python读取excle转化为json或js文件。
  3. 可以将代码封装成exe应用程序,方便使用;
项目代码 导入模块
import xlrd
import os
import json
from http.server import HTTPServer, SimpleHTTPRequestHandler
import webbrowser

读取excel数据并将其转为js文件
# 读取excel数据并将其转为js文件
filename = r'data/lockdata.xls'

# 判断文件是否存在
file_data = os.path.exists(filename)
if not file_data:
    print("系统默认data.xls表格文件不存在.")
else:
    print("系统获取到文件,处理中...")
    data = xlrd.open_workbook(filename)  # 文件名以及路径,如果路径或者文件名有中文给前面加一个r不转义。
    # 获取你要sheet的名称
    sheet_name = data.sheet_names()
    # 根据sheet索引或者名称获取sheet内容
    sheet = data.sheet_by_index(0)
    # 获取整行和整列的值(列表)
    rows = sheet.row_values(1)  # 获取第2行内容

    # 自定义数组
    tables = []
    data = {}
    for rown in range(sheet.nrows):
        array = {'name': sheet.cell_value(rown, 0), 'lng': sheet.cell_value(rown, 1), 'lat': sheet.cell_value(rown, 2)}
        tables.append(array)

    # print(tables)
    # 删除标题头
    del tables[0]
    data = tables

    # 转为JSON
    res = json.dumps(data, ensure_ascii=False)
    # print(res)

    # 生成对应的JS数据文件
    content = 'var data ={}'.format(res)

    # 写入文件
    with open(r'js/poidata.js', 'w', encoding="utf-8") as f:
        f.write(content)

    print("经纬度数据转换完成..")

创建http server
# 创建http server
class GetHttpServer(SimpleHTTPRequestHandler):
    protocol_version = "HTTP/1.0"
    server_version = "PSHS/0.1"
    sys_version = "Python/3.9.x"
    target = "./"  # 监听目录,配置项

    def do_get(self):
        SimpleHTTPRequestHandler.do_GET(self)

    def do_post(self):
        print("postmsg recv, path error")
        data = self.rfile.read(int(self.headers["content-length"]))
        data = json.loads(data)
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        rspstr = "recv ok, data = "
        rspstr += json.dumps(data, ensure_ascii=False)
        self.wfile.write(rspstr.encode("utf-8"))


def http_server():
    ip = "localhost"  # 监听IP,配置项
    port = 8800  # 监听端口,配置项
    index_url = "http://%s:%d/index.html" % (ip, port)  # 监听主页url,配置项
    server = HTTPServer((ip, port), GetHttpServer)
    try:
        # 弹出窗口
        webbrowser.open(index_url)
        # 输出信息
        print("服务器监听地址: ", index_url)
        server.serve_forever()
    except KeyboardInterrupt:
        server.socket.close()


# 执行服务器脚本
http_server()

源代码:https://download.csdn.net/download/weixin_41290949/29086018

lockdatav Done!

关注
打赏
1661217259
查看更多评论
立即登录/注册

微信扫码登录

1.7680s