Python PIL.ExifTags - 不确定它是什么

时间:2015-08-19 03:16:31

标签: python python-imaging-library

我正在阅读我在GitHub上找到的一些代码(请参阅下面的代码摘录),这些代码与使用PIL从EXIF获取纬度和经度有关。除了TAGS.get(标签,标签)之外,我几乎可以跟踪发生的事情。当我查看Pillow reference material时,它给出了一个示例,但不足以让我知道代码的内容或代码为什么有两个"标记" varibles显示例如(标签,标签)。如果有人能够对这个问题有所了解或提供更详细的参考资料的链接,我们将不胜感激。

def get_exif_data(image):
    """Returns a dictionary from the exif data of an PIL Image item. Also converts the GPS Tags"""
    exif_data = {}
    info = image._getexif()
    if info:
        for tag, value in info.items():
            decoded = TAGS.get(tag, tag)
            if decoded == "GPSInfo":
                gps_data = {}
                for t in value:
                    sub_decoded = GPSTAGS.get(t, t)
                    gps_data[sub_decoded] = value[t]

                exif_data[decoded] = gps_data
            else:
                exif_data[decoded] = value

2 个答案:

答案 0 :(得分:2)

ExifTags.TAGS是一本字典。这是整本字典: https://github.com/python-pillow/Pillow/blob/master/PIL/ExifTags.py

因此,您可以使用TAGS.get(key)获取给定密钥的值。 如果该键不存在,您可以通过传入第二个参数TAGS.get(key, val)

让它返回默认值

来源: http://www.tutorialspoint.com/python/dictionary_get.htm

  

get(key [,default])如果key在,则返回key的值   字典,否则默认。如果未给出default,则默认为   无,因此此方法永远不会引发KeyError。

来源:https://docs.python.org/2.7/library/stdtypes.html#dict.get

答案 1 :(得分:0)

我只运行您的代码。您必须这样导入另一个模块: 从PIL.ExifTags导入GPSTAGS 。然后它不会运行错误。