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

如何在pandas.read_sql_query中直接转换VARBINARY为可读格式?

解决VARBINARY字段直接读取为可读格式的两种方法

一、在SQL查询中直接转换(最省心的方式)

不同数据库提供了内置函数,可直接将VARBINARY类型转为十六进制字符串,查询时处理后,读取结果就是可用格式:

  • MySQL/MariaDB:使用HEX()函数
    SELECT HEX(`key`) AS key_hex FROM xxx
    
  • SQL Server:使用CONVERT()函数(参数2指定十六进制输出)
    SELECT CONVERT(VARCHAR(MAX), [key], 2) AS key_hex FROM xxx
    
  • PostgreSQL:使用ENCODE()函数指定hex编码
    SELECT ENCODE("key", 'hex') AS key_hex FROM xxx
    

二、在pandas读取时指定转换器

如果不想修改SQL语句,可利用read_sql_query的converters参数,直接对目标字段做转换:

import pandas as pd

df = pd.read_sql_query(
    "select `key` from xxx",
    engine,
    converters={"key": lambda x: x.tobytes().hex() if x is not None else None}
)

该参数会在读取字段时自动执行转换逻辑,无需后续再用apply处理。

内容的提问来源于stack exchange,提问作者meisterkaio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:33:18