namezhou_0616 2021-07-05 14:31 采纳率: 0%
浏览 146

python往postgres里面写数据遇到\x00 NULL 字元的问题

各位大佬 我现在有个需求,需要用python将oracle数据读取出来然后插入到postgres里面,目前 报错:经过排查发现,只要字串里有\x00 NULL 字元,psycopg2 就会弹一个ValueError 的exception,内容就是 A string literal cannot contain NUL (0x00) characters.
现在我初步的想法是对取出来的数据进行值的替换,但是这一块我不知道如何替换列表中的字符串,求指点在下图中的代码 如何将\x00 NULL 字元替换掉
while True:
rows = coure_select.fetchmany(1000)
# rows.decode("utf-8", errors="replace").replace("\x00", "\uFFFD")
coure_insert.executemany(insert_sql,rows)
get_insrt_database.commit()
if not rows:
break #中断循环

百度了下 decode("utf-8", errors="replace").replace("\x00", "\uFFFD") 这段代码 但是加进去后报错 :
AttributeError: 'list' object has no attribute 'decode'


  • 写回答

4条回答 默认 最新

  • CSDN专家-HGJ 2021-07-05 14:50
    关注

    遍历列表元素,即对字符串进行处理,像这样:
    new=[]
    for r in rows:
    r.decode("utf-8", errors="replace").replace("\x00", "\uFFFD")
    new.append(r)

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?