私は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 コーデックです。getrequest6 ファイルから ANSI ファイルにデータをコピーして貼り付けると、上記のコードが機能するため、これが KeyError の理由であると想定しています。
どんな助けでも大歓迎です。コーデック クラスで検索しましたが、わかりません。