You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:35:28