解决sqlalchemy.exc.ProgrammingError:无法适配IFDRational类型问题
问题:图片GPS数据存入PostgreSQL时遇IFDRational类型适配错误
错误信息
执行数据库插入操作时触发以下错误:
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'IFDRational'
待插入数据
传入插入函数的字典数据如下:
{'image_name': 'test4.JPG', 'date_time': '2022:09:13 10:22:01', 'latitude': 37.94335555555555, 'longitude': 23.84112222222222, 'altitude': 251.91022778025905}
相关代码
import psycopg2 from meta_data import get_meta_data from sqlalchemy import create_engine # 数据库连接 db_string = "postgresql://xxxxx:xxxxxxx@xxxxx:5432/xxxxx" db = create_engine(db_string) conn = db.connect() print("Connected successfully........") data = get_meta_data('test4.JPG') # print(data) def insert_data(data): db.execute( "INSERT INTO images (image_name, date_time, latitude, longitude, altitude) VALUES (%s, %s, %s, %s, %s)", (data['image_name'], data['date_time'], data['latitude'], data['longitude'], data['altitude'])) print("Data inserted successfully........") insert_data(data)
解决方案
经@snakecharmerb提示,将从EXIF中获取的海拔数据转换为float类型后,问题解决。转换代码如下:
alt = float(exif_data['GPSInfo'][6])
内容的提问来源于stack exchange,提问作者DeckChain
相关产品推荐
相关产品推荐

