python - ascii' 编解码器无法编码字符 '\xf3' SQL/Oracle
问题描述
我正在尝试从 Oracle 数据库中进行提取,查询工作正常,但是当我尝试将其传递给 DataFrame 时,我收到一个错误。
# -*- coding: latin-1 -*-
import pandas as pd
import cx_Oracle as cx_Oracle
dsn_tns = cx_Oracle.makedsn(r'****','***', service_name='*****')
conn = cx_Oracle.connect(user=r'***',password = '****',dsn=dsn_tns)
c = conn.cursor()
try:
query = '''
select distinct th.tmhalucod ALUCOD,
th.tmhespcod ESPCOD,
NVL(KLS.CURSO_KLS, '#REGISTRO NOVO#') CURSO_KLS,
ac.tmacod TURMA,
th.tmhdisperiodo PERIODO_OFERTA
from temphist th
join aluncurs ac
on th.tmhalucod = ac.alucod
join v_alunsituatual v
on v.alucod = ac.alucod
and v.espcod = ac.espcod
and v.pelcod = ac.pelcod
join especial e
on e.espcod = ac.espcod
LEFT JOIN ROBERTOALMEIDA.DPAA_TB_DE_PARA_CURSO KLS
ON (KLS.ESPCOD = E.ESPCOD AND KLS.BANCO = 'OLIM')
'''
alundisc = pd.read_sql(con = conn, sql = query)
finally:
conn.close()
每次运行代码时都会出现以下错误。
Traceback (most recent call last):
File "C:\Users\gilmar.melo\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\io\sql.py", line 1586, in execute
cur.execute(*args, **kwargs)
UnicodeEncodeError: 'ascii' codec can't encode character '\xf3' in position 632: ordinal not in range(128)
如果我不输入 alundisc = pd.read_sql(con = conn, sql = query) 行,代码运行正常。
解决方案
推荐阅读
- vba - MS Access FileDialog 导致根文件夹
- excel - Excel UDF 对具有特定背景颜色的单元格求和
- javascript - 无法更新其父组件上的子组件
- c# - 如何在 .NET 中集成 Neo4j 数据库和 GraphQL?
- javascript - Jest mock 并不总是适用于异步测试
- python - 如果我在一个函数中创建了小部件,如何使用 Python Tkinter 在另一个函数中访问它们?
- python - Python PiCamera - 如何格式化 Exif 的坐标?
- javascript - vuetify v-menu 中的搜索功能
- jmeter - 指向文件位置的 JSR223 脚本引发错误
- javascript - 为什么在javascript中解构数组比对象慢?