私はあまりにもコースに関連するいくつかのトラブルのためにここに上陸し、これは未回答だとわかりました。しかし、私はあなたがすでにそれを管理していると思います。とにかくここに答えると、他の人がこれを参考にしているかもしれません。
我々はすべて知っているようにも動作するはずです、辞書は
dictionary_name['key']
と同様に enrollments['cancel_date']
のようにアクセスすることができます。
しかし、あなたは
print enrollments
ような何かを行う場合、あなたは括弧に気付いた場合、それはlist of dictionaries
ようなものだ構造に
[{u'status': u'canceled', u'is_udacity': u'True', ...}, {}, ... {}]
が表示されます。あなたはそれがlist of list
と主張するかもしれません。それを試してみてください。
print enrollments[0][0]
エラーが発生します。 KeyError
。
だから、それは辞書のコレクションのようなものです。それらにアクセスするには? enrollments[n]
で任意の辞書(csvの行ではなく)にズームダウンします。
ここでは辞書があります。今すぐkey
を自由に使用できます。今すぐあなたのループに来
print enrollments[0]['cancel_date']
、これが何をしているか
for enrollment in enrollments:
enrollment['cancel_date'] = parse_date(enrollment['cancel_date'])
はenrollment
がenrollments[1], enrollments[2] ... enrollments[n]
のような反復可能な要素enrollments
のそれぞれを捉えるダミー変数です。
ので、すべてのタイムenrollment
はenrollments['cancel_date']
上enrollments
のでenrollment['cancel_date']
作品から辞書を持っています。
最後に、私がスレッドに来た理由をもう少し追加したいと思います。
「u」の意味はなんですか?例:u'cancel_date '= u'11-02-19'
答えは、文字列がUnicode
としてエンコードされていることを意味します。これは文字列の一部ではなく、Python表記です。 Unicodeは、世界中のすべての言語の文字と記号を含むライブラリです。
これは主に、unicodecsv
パッケージがcsvファイル内の各項目の追跡と変換の頭痛を覚えていないために発生します。すべての文字を保持するためにUnicodeとして読み込みます。これで、Carolineとあなたはparse_date()
とその他の関数を定義して使用し、Unicode文字列を目的のデータ型に変換しました。これは、すべてデータ・ウォーリング・プロセスの一部です。
2番目のコードブロックを 'enrollment ['cancel_date']'から 'enrollments ['cancel_date']'に修正してください。私はそれがあなたが意味するものだと思います。 – lU5er