首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字典键不存在,但确实存在。

字典键不存在,但确实存在。
EN

Stack Overflow用户
提问于 2018-05-10 19:55:11
回答 2查看 215关注 0票数 0

我正在使用exifread从照片中获取一些Exif信息。

目前,我正在尝试获取GPS纬度和经度,我可以这样做:

代码语言:javascript
运行
复制
def main():
    images = image_paths(IMAGE_FOLDER) # folder is say "Sample Photos\\"
    info = {}
    for img in images:
        _lat, _lon = "", ""
        tags = exifread.process_file(open(img,'rb'))       

        for i in tags.keys():
            if i == "GPS GPSLatitude":
                print(i, ":::", tags[i])

这将打印我所期望的,它们的关键名称和值:

全球定位系统GPSLatitude::32,52,66443/1250 全球定位系统GPSLatitude::32,52,531699/10000 全球定位系统GPSLatitude::32,52,531699/10000 全球定位系统GPSLatitude::32,52,132789/2500 全球定位系统GPSLatitude::32,52,265817/5000

但是,为了跳过这个循环并快速获取键/值对,我尝试了(这取代了for i ...循环)

代码语言:javascript
运行
复制
_lon = tags["GPS GPSLatitude"]

但我发现了一个错误:

KeyError:“GPS GPSLatitude”

如何访问"GPS GPSLatitude“(和"GPS GPSLongitude")而不遍历tags的键?

编辑:

tags<class 'dict'>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-10 20:04:42

是否可能有些标签没有键'GPS GPSLatitude'

也许你可以试试

代码语言:javascript
运行
复制
_lat = tags.get('GPS GPSLatitude', '')

这样,如果_lat存在,它将被设置为纬度值,否则它将被设置为空字符串。

票数 3
EN

Stack Overflow用户

发布于 2018-05-10 20:06:13

如果任何图像没有该标记,则需要处理该异常以防止崩溃。例如:

代码语言:javascript
运行
复制
def main():
    images = image_paths(IMAGE_FOLDER) # folder is say "Sample Photos\\"
    info = {}
    for img in images:
        _lat, _lon = "", ""
        tags = exifread.process_file(open(img,'rb'))       

        try:
            _lon = tags["GPS GPSLongitude"]
            # _lat = tags["GPS GPSLatitude"]  # presumably you also want this
            # do something with these... perhaps add to info
        except KeyError:
            pass  # move on
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50280590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档