1

私はいくつかのシートを含むExcelブックを持っています。各シートには と の 2 つの列がPersonIDありLegacyIDます。基本的に、に基づいてデータベース内のいくつかのレコードを更新しようとしていますpersonid。これは TSQL を実行するのが比較的簡単で、powershell でかなり迅速に実行できるかもしれませんが、Python を学ぼうとしていたので、Python でこれを試してみようと思いました。モジュールを使用xlrdしたところ、更新ステートメントを出力できました。以下は私のコードです:

import xlrd

book = xlrd.open_workbook('D:\Scripts\UpdateID01.xls')
sheet = book.sheet_by_index(0)

myList = []
for i in range(sheet.nrows):
   myList.append(sheet.row_values(i))


outFile = open('D:\Scripts\update.txt', 'wb')

for i in myList:
    outFile.write("\nUPDATE PERSON SET LegacyID = " + "'" + str(i[1]) + "'" + " WHERE personid = " + "'" + str(i[0])
                  + "'")

2 つの問題 - 出力ファイルを読み取ると、出力LegacyIDが float として表示されます。.0各 ID の末尾にあるを取り除くにはどうすればよいですか? 2 番目の問題は、Python が各更新ステートメントを出力テキスト ファイルの新しい行に出力しないことです。フォーマットするにはどうすればよいですか?

編集:フォーマットの問題は無視してください。Notepad ++で出力ファイルを開くと、新しい行で印刷されました。フロートの問題はまだ残っています。

4

3 に答える 3

1

LegacyID を int に変換できますか?

i[1] = int(i[1])

outFile.write("\nUPDATE PERSON SET LegacyID = " + "'" + str(i[1]) + "'" + " WHERE personid = " + "'" + str(i[0]) + "'" )

于 2013-06-05T07:36:51.830 に答える
1

あなたは Python を学んでいるので (これは非常に称賛に値します!) 、Python のドキュメントで文字列の書式設定について読み始める必要があります。これは、質問があるときはいつでも開始するのに最適な場所です。

ヒント: を使用して、float 項目を整数に変換したい場合がありますint()

于 2013-06-05T07:34:57.827 に答える