私は、列の中の生の数値データを持つ行を取り、適切なものに変換する関数を書いています分(そのcsvファイル)。文字列が簡単になるので、すべての列は文字列として保持されています。しかし、一部のデータを(文字列でも)時刻形式に変換すると、タイトルに記述されているエラーが発生します。私の機能は、以下のようになります。私はduration_in_mins()
を実行したとき、私はトレースバックに応じて、エラーを取得していますどこPython 3.6 - いくつかの文字列を時間に変換する際に '整数が必要です(strが得られました)'
def duration_in_mins(row, city):
duration = [] # Make an empty list
form = '%M.%S'
if city == 'X':
city_file = open('X.csv')
city_csv = csv.reader(city_file)
for row in city_csv:
duration.append(row[1]) # The column that contains the strings
for i in duration:
datetime.datetime.fromtimestamp(i).strftime(form, 'minutes') # Conversion
else:
return 'Error'
return duration
ラインdatetime.datetime.fromtimestamp(i).strftime(form, 'minutes')
です。トレースバックは文字列を数値に変換してから時間に変換するように指示していますか? datetimeは文字列を直接時間に変換することはできませんか?
duration_in_mins(5, 'X)
line 39, in duration_in_mins
datetime.datetime.fromtimestamp(i).strptime(form, 'minutes')
TypeError: an integer is required (got type str)
エラーとトレースを表示します。 – Carcigenicate
'for city_csv:'これは正しく見えません。あなたはここで何をしようとしていますか? – mtkilic
読み取られた元のcsvファイルから特定の列 '[1]'のみを含むように 'duration'リストを追加します。それは何をすべきか... –