我正在阅读我在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
答案 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 。然后它不会运行错误。