私はUdacityでデータ解析コースを受講しました。 私のコードは次のとおりです。ここで引数1はdatetime.datetimeではなくstringでなければなりませんか?
enrollments_filename= '/Users/abc/Desktop/Udacity - Intro to Data Analysis/enrollments.csv'
def open_file(filename):
with open(filename, 'rb') as f:
reader = unicodecsv.DictReader(f)
return list(reader)
enrollments = open_file(enrollments_filename)
# Takes a date as a string, and returns a Python datetime object.
# If there is no date given, returns None
from datetime import datetime as dt
def parse_date(date):
if date == '':
return None
else:
return dt.strptime(date, '%Y-%m-%d')
# Takes a string which is either an empty string or represents an integer,
# and returns an int or None.
def parse_maybe_int(i):
if i == '':
return None
else:
return int(i)
for enrollment in enrollments:
enrollment['cancel_date'] = parse_date(enrollment['cancel_date'])
enrollment['days_to_cancel'] = parse_maybe_int(enrollment['days_to_cancel'])
enrollment['is_canceled'] = enrollment['is_canceled'] == 'True'
enrollment['is_udacity'] = enrollment['is_udacity'] == 'True'
enrollment['join_date'] = parse_date(enrollment['join_date'])
enrollments[0]
は、私が得たエラーです:
TypeError: strptime() argument 1 must be string, not datetime.datetime
は、誰が、なぜ私に説明できますか?私はstr(date)
にdate
を変更すると、ここでエラーがある私が得た:
//anaconda/lib/python2.7/_strptime.pyc in _strptime(data_string, format)
333 if len(data_string) != found.end():
334 raise ValueError("unconverted data remains: %s" %
--> 335 data_string[found.end():])
336
337 year = None
ValueError: unconverted data remains: 00:00:00
奇妙なことは、私が最初のコードを実行したときに、それが動作する、です。しかし、私は2回目の再押され、それはエラーを返しました!どうもありがとう!
strptimeのstr部分としてdatetimeオブジェクトを渡していたため、最初はエラーが発生していました( 'string'を取り、' time'オブジェクトとして解析します)。文字列も同じ形式でなければなりません'dt.strptime(" 2016-10-4 "、 '%Y-%m-%d')'は 'dt.strptime(" 1610-4 "、 '%Y - %m-%d ') 'は使用できません。オンラインで例を探し、https://docs.python.org/3/library/datetime.html#module-datetime –
を確認してください。問題を投稿する前にドキュメントを覚えておいてくださいエラーが発生したときに出力を出力する必要があります。問題の原因となっているコードセクションでは、こんにちは世界のシナリオでどのように動作するべきかを少なくとも知っていなければなりません。あなたの完璧なhello worldで出力を出力し、ほとんどの場合、差が出て、何を間違っているのかを教えてくれるでしょう。 –