如何解决搜索不同长度的数字
我有带有一行文本的gps日志文件
{"location": {"lat": 50.0918805,"lng": 14.4261817},"accuracy": 29.1671027,"ts": 1598515548}
我的目标是打印纬度和经度值,我能够做到这一点:
folder_path = 'D:\path'
for filename in glob.glob(os.path.join(folder_path,'*.geo.json')):
with open(filename,'r') as filecontent:
readme = filecontent.read()
lat = readme[21:28]
long = readme[40:47]
print(lat,long)
我坚信这对我来说是完美的,我得到了不错的数字,例如:
50.0918 14.4260
50.0920 4.42629
50.0918 14.4260
50.0917 14.4258
50.0920 14.4263
50.0917 14.4259
50.0918 14.4260
50.0919 4261233
但是实际上缺少数字,问题出在日志中,为纬度/经度生成的数字的长度并不总是相同,我从第一个字符的位置打印数字。 我尝试仅打印数字,并用“,”分隔,但是我不想在那儿有更多的数字。
在这里我被困住了,无法弄清楚如何打印"lat":
和"lng":
之后的所有数字,而不是"accuracy":
之后的
如果您能帮助我,那会让我开心,加油。
解决方法
这是结构化的文本,因此您最好使用该结构,例如:
import json
content = """{"location": {"lat": 50.0918805,"lng": 14.4261817},"accuracy": 29.1671027,"ts": 1598515548}"""
data = json.loads(content)
print(data["location"]["lat"],data["location"]["lng"])
这产生
50.0918805 14.4261817
,
您应该使用json库来解析.json
文件:
import json
import glob
folder_path = 'D:\path'
for filename in glob.glob(os.path.join(folder_path,'*.geo.json')):
coords = json.load(open(filename,'r'))
print(
coords['location']['lat'],coords['location']['lng'],coords['accuracy']
)
# 50.0918805 14.4261817 29.1671027
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。