次のコードがあります。
def search_for_person(name):
with open("address.txt", "r") as book:
records = re.split("[-]+", book.read(), re.M)
for data in records:
record = get_record(data)
if record['Name'] == name:
print record
def get_record(string):
return dict(re.findall("^(.*): (.*)$", string, re.M))
これを使用してレコードを見つけようとすると、次の出力が得られます。
Enter name: Daniel Ghi
{'Home Phone No.': 'Example', 'Mobile Phone No.': 'Example', 'Name': 'Daniel Ghi
', 'Address': 'Example'}
Traceback (most recent call last):
File "address.py", line 35, in <module>
search_for_person(name)
File "address.py", line 18, in search_for_person
if record['Name'] == name:
KeyError: 'Name'
ご覧のとおり、これは実際には正しいデータを出力しますが、それでも KeyError が発生し、その理由はわかりません。誰でも私を啓発できますか?