利用Python将TXT文件中的经纬度数据转换为JSON格式

在处理地理空间数据时,经常需要将数据从一种格式转换为另一种格式,以便于后续的分析或可视化。本文将介绍如何使用Python脚本将存储在TXT文件中的经纬度数据转换为JSON格式。

一、背景介绍

经纬度数据是地理信息系统(GIS)中的基础数据,它们通常用于表示地理位置。在很多应用中,我们需要将这些数据转换为JSON格式,以便在网络应用中传输或在前端进行可视化。

二、TXT文件格式

假设我们有一个TXT文件,其中包含了多行经纬度数据,每行数据由纬度和经度两个数值组成,中间用空格分隔。例如:

 

复制代码

23.070983 113.238610
23.123456 113.345678
...

三、Python脚本实现

为了将这些数据转换为JSON格式,我们可以编写一个Python脚本来读取TXT文件,并将每行数据转换为一个包含latlon键的字典,然后将这些字典添加到一个列表中。最后,我们使用Python的json模块将这个列表转换为JSON字符串。

以下是实现这一功能的Python脚本:

 

python复制代码

import json
# 打开并读取TXT文件
with open('coordinates.txt', 'r') as file:
lines = file.readlines()
# 准备输出的列表
coordinates_json = []
# 遍历文件的每一行
for line in lines:
# 去除行尾的换行符并以空格分割字符串
lat, lon = line.strip().split()
# 将经纬度数据构造成字典,并添加到列表中
coordinates_json.append({'lat': lat, 'lon': lon})
# 将列表中的字典转换为JSON字符串
json_output = json.dumps(coordinates_json, indent=4)
# 打印或保存JSON字符串
print(json_output)
# 如果需要保存到文件
with open('coordinates.json', 'w') as file:
file.write(json_output)

完整代码如下:

import json  # 打开并读取txt文件  
with open('/Users/chenchuang/Desktop/coordinates.txt', 'r') as file:  lines = file.readlines()  # 准备输出的列表  
coordinates_json = []  # 遍历文件的每一行  
for line in lines:  # 去除行尾的换行符并以空格分割字符串  lat, lon = line.strip().split()  # 将经纬度数据构造成字典,并添加到列表中  coordinates_json.append({'lat': lat, 'lon': lon})  # 将列表中的字典转换为JSON字符串  
json_output = json.dumps(coordinates_json, indent=4)  # 打印或保存JSON字符串  
print(json_output)  # 如果需要保存到文件  
with open('coordinates.json', 'w') as file:  file.write(json_output)

四、脚本解释

  1. 首先,我们使用open函数打开TXT文件,并使用readlines方法读取所有行,存储在lines列表中。
  2. 然后,我们初始化一个空列表coordinates_json,用于存储转换后的字典。
  3. 接下来,我们遍历lines列表中的每一行。对于每一行,我们使用strip方法去除行尾的换行符,并使用split方法以空格分隔纬度和经度。然后,我们创建一个字典,其中包含latlon两个键,分别对应纬度和经度值。最后,我们将这个字典添加到coordinates_json列表中。
  4. 当我们处理完所有行后,我们使用json.dumps方法将coordinates_json列表转换为格式化的JSON字符串。indent=4参数表示使用4个空格进行缩进,以使输出的JSON字符串更易于阅读。
  5. 最后,我们可以选择打印JSON字符串或将其保存到文件中。在上面的脚本中,我们同时执行了这两个操作。

五、结论

通过使用上述Python脚本,我们可以轻松地将TXT文件中的经纬度数据转换为JSON格式。这种转换对于数据交换、前端可视化或与其他系统的集成非常有用。此外,这个脚本也可以作为处理其他类似数据格式的起点,只需稍作修改即可适应不同的需求。

欢迎关注我的微信技术公众号: 前端组件开发

d848d5658a07453c843277846948c608.png

欢迎加入“前端组件开发学习”交流群,一起学习成长!可关注  “前端组件开发” 公众号后,私信后申请入群。

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

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

相关文章

Redis 全景图(3)--- Redis 应用于缓存

前言 这是关于 Redis 全景图的最后一篇文章。因为一次写太多会限流,我也是没办法,才分成三篇文章来写。这篇文章是关于 Redis 应用于缓存的。 其实为什么要讲这个话题呢? Redis 应用在很多地方呀,为什么一定要挑着这个话题来讲呢…

如何从屏幕破损的 Android 手机恢复数据?

假设您不小心将智能手机掉落在地上,导致手机显示屏破裂;或者,如果Android手机由于日常生活中的病毒攻击等其他原因而损坏或死机,如何从损坏的Android手机中完全提取保存的联系人、消息甚至更多文件?如何在手机上恢复所…

使用 Prisma ORM 和 Cloudflare D1 构建应用程序

自 2017 年推出 Workers 以来,Cloudflare 一直引领边缘计算领域。Cloudflare 最近通过 D1 发布了本机无服务器数据库。我们现在可以使用 Prisma ORM 与 D1 一起构建应用程序。 将数据库部署到边缘 Cloudflare Workers 是一种分布在全球范围内的轻量级无服务器计算形…

Centos7安装Docker与Docker-compose【图文教程】

个人记录 查看一下系统是否已经安装了Docker yum list installed | grep docker如下图代表没有安装Docker 卸载已有Docker yum remove docker docker-common docker-selinux docker-engine切换目录 cd /etc/yum.repos.d/查看当前目录所有的镜像源 ll安装yum-util与devi…

基于springboot实现影城管理系统项目【项目源码+论文说明】

基于springboot实现影城管理系统演示 摘要 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之中,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小…

C语言-realloc函数的使用

语法格式 1. realloc 函数用于动态地改变之前分配的内存块的大小。其函数原型如下: void *realloc(void *ptr, size_t size);- ptr: 指向之前分配的内存块的指针。如果 ptr 为 NULL,那么 realloc 行为与 malloc 相同。 - size: 新分配的大小&#xff0…

前端三剑客 —— CSS (上)

上节内容中提到了 前端三剑客 —— HTML 超文本标记语言,这节内容 跟大家讲述三剑客中的第二个 CSS。 CSS 什么是CSS Cascading Style Sheel,简称CSS,中文叫层叠样式表,也叫级联样式表。主要作用是来修饰HTML页面的一种技术。 …

案例:非功能性需求的设计

在咨询中看到很多项目组对于非功能性需求没有做设计,很多项目组在设计文档中仅仅是把非功能性需求的描述拷贝到设计文档的非功能性章节。因此特地设计了两个简单的需求给大家参考,希望能够引导设计人员重视非功能性需求的设计。

视觉大模型--deter的深入理解

但对于transformer用于目标检测领域的开创性模型,该模型言简意赅,但是但从论文理解,有很多细节都不清楚,尤其是解码器的query和二分图匹配(Bipartite Matching)和匈牙利算法(Hungarian Algorithm)相关,本文将根据代码详…

32. UE5 RPG使用增强输入激活GameplayAbility(二)

在上一篇文章中,我们实现了Tag和InputAction的数据对应,后面,我们会通过InputAction触发对应的Tag,然后在GameplayAbility身上设置对应的Tag,然后通过Tag遍历角色身上的所有应用的技能去激活。为了实现这个功能&#x…

精读 Generating Mammography Reports from Multi-view Mammograms with BERT

精读(非常推荐) Generating Mammography Reports from Multi-view Mammograms with BERT(上) 这里的作者有个叫 Ilya 的吓坏我了 1. Abstract Writing mammography reports can be errorprone and time-consuming for radiolog…

基于单片机的数字万用表设计

**单片机设计介绍,基于单片机的数字万用表设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的数字万用表设计概要是关于使用单片机技术来实现数字万用表功能的一种设计方案。下面将详细概述该设计的各个…

【性能测试】接口测试各知识第2篇:学习目标,1. 理解接口的概念【附代码文档】

接口测试完整教程(附代码资料)主要内容讲述:接口测试,学习目标学习目标,2. 接口测试课程大纲,3. 接口学完样品,4. 学完课程,学到什么,5. 参考:,1. 理解接口的概念。学习目标,RESTFUL1. 理解接口的概念,2.什么是接口测试…

ChatGPT 的行家指南

原文:An Insider’s Guide to using ChatGPT 译者:飞龙 协议:CC BY-NC-SA 4.0 介绍 你是否厌倦了花费无数小时为你的业务创建内容?从博客文章到社交媒体更新,从电子书内容到电子邮件,这可能是一个耗时的过…

如何保持数据一致性

如何保持数据一致性 数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。 问题描述: 1.在高并发的场景中,针对同一个…

基于java+SpringBoot+Vue的学生心理咨询评估系统设计与实现

基于javaSpringBootVue的学生心理咨询评估系统设计与实现 开发语言: Java 数据库: MySQL技术: Spring Boot MyBatis工具: IDEA/Eclipse、Navicat、Maven 系统展示 后台展示 用户管理模块:管理员可以查看、添加、编辑和删除用户信息。 试题管理模块&#xff1a…

Qt + VS2017 创建一个简单的图片加载应用程序

简介: 本文介绍了如何使用Qt创建一个简单的图片加载应用程序。该应用程序可以打开图片文件并在界面上显示选定的图片,并保存用户上次选择的图片路径。 1. 创建项目: 首先,在VS中创建一个新的Qt Widgets应用程序项目,并…

LeetCode 1379.找出克隆二叉树中的相同节点:二叉树遍历

【LetMeFly】1379.找出克隆二叉树中的相同节点:二叉树遍历 力扣题目链接:https://leetcode.cn/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree/ 给你两棵二叉树,原始树 original 和克隆树 cloned&#xff0…

Golang | Leetcode Golang题解之第3题无重复字符的最长子串

题目: 题解: func lengthOfLongestSubstring(s string) int {// 哈希集合,记录每个字符是否出现过m : map[byte]int{}n : len(s)// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动r…

CMD 命令行进入到电脑硬盘的某个目录的几种方式

本文介绍几种 cmd 命令行进入到电脑硬盘的某个目录的几种方式。 1、在具体文件目录地址栏输入 cmd 回车 这是最快的、最牛的方式,没有之一。 比如:我想进入一个层级很深的文件目录,直接打开在那个目录,把地址栏信息删除清空&am…