Swa*_*nil 3 file-io utf-8 teradata python-3.x
目标--> 我正在尝试使用Python自动化查询执行过程
详细信息--> 我的源是Teradata数据库,目标是.txt文件
我正在编写 Python 代码以在 Teradata 中运行查询并将输出保存在 .txt 文件中。
问题--> 尽管我能够运行查询并保存输出,但日语字符显示为“\x1a\x1a”
对于前。当我运行查询时,我在 Teradata SQL Assistant 窗口中看到的输出是“????”? 而文本文件中的输出是“\x1a\x1a”
我正在使用“PYCharm”进行编码
我正在使用下面的代码进行编写文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import io
import pyodbc
import os
#Establish connection with Teradata
conn = pyodbc.connect('Coneection Parameters')
conn.setencoding(encoding='utf-8')
cur = conn.cursor()
conn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
#Reading Query
scriptFile = open('query.sql','r')
script = scriptFile.read()
scriptFile.close()
#Executing Query
cur.execute(script)
rows = cur.fetchall()
#Writing the output to file
with open('results.txt','w') as f:
print(rows)
f.write('%s\n' % rows)
#Closing the Connection
cur.close()#close the query writing
conn.close()
Run Code Online (Sandbox Code Playgroud)
使用的变量
results.txt -> 目标文件,我想在这里写日语字符
我期待的示例输出?????
我在文件“results.txt”中得到的输出--> [('\x1a\x1a\x1a\x1a\x1a', )]
让我们解决标题问题。将日语(或任何语言)输出到文件:
使用 Python 3 的示例:
s = '?????'
with open('results.txt','w',encoding='utf8') as f:
f.write(s)
Run Code Online (Sandbox Code Playgroud)
您rows的不是 Unicode 字符串,而是带有不正确字符串的元组的列表。这是你必须解决的另一个问题。
| 归档时间: |
|
| 查看次数: |
4736 次 |
| 最近记录: |