我是 python和编程的新手,所以我确定我的代码与“pythonic”相反。
我的目标是从服务器获取一个 excel 文件,打开它,将文件中的数据写入一个新文件。接下来,我打开该文件并使用 dictReader 从文件中打印几列。首先,我编写了一个脚本来打开一个 excel 文件并打印列。我能够做到这一点。现在我正在添加获取文件的下一步,将其写入本地文件,然后打开它。
我收到以下错误,在发布之前我已经研究了很多:
File "request.py", line 20, in <module>
if line['Change'] == ticket_ID:
KeyError: 'Change'
下面是我的代码:
import csv
import sys
import urllib2
data = urllib2.urlopen("URL-HERE")
new_file = open("c:\\file-here", "w")
for fields in data:
new_file.write(fields)
new_file.close()
test_file = 'getrequest6.csv'
csv_file = csv.DictReader(open(test_file, 'r'))
# ticket_ID = sys.argv[1]
ticket_ID = "RMSDB00010243"
for line in csv_file:
if line['Change'] == ticket_ID:
change_col = line['Change']
review_col = line['Review']
phase_col = line['Phase']
print change_col, review_col, phase_col
我发现我从服务器手动下载的文件是 ANSI 编解码器。这个文件在我打开时有效。我创建和编写的新文件 (getrequest6) 是一个 UTF-8 编解码器。我假设这是 KeyError 的原因,因为当我将数据从 getrequest6 文件复制并粘贴到 ANSI 文件时,上面的代码可以正常工作。
任何帮助,将不胜感激。我搜索了编解码器类,但我不明白。