Как сопоставить значение в базе данных в CSV-файле? - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь сравнить значение из CSV-файлов и базы данных.

Я создаю словарь, в котором я ставлю название города в качестве ключа и почтовый индекс в качестве значения.

Поэтому, когда я сравниваю название города из моей базы данных и смотрю в мой CSV-файлы. Матчи не были сделаны.

                for row in town_reader:
                    if row['_zipcode'] in (None,""):
                        zipcode = self.get_zip_from_adr(
                            row['Formatted / parsed address field used to retrieve Geolocator'])
                        row['_zipcode'] = zipcode
                        if row['_zipcode'] in (None, ""):
                            for k in dictionary.items():
                                if row['_town / _city'] == k:
                                    row['_zipcode'] = dictionary[k]
                    csv_writer.writerow(row) 

1 Ответ

1 голос
/ 17 января 2020

dictionary.items() вернет кортежи (city name, zip code), а row['_town / _city'] будет только названием города, поэтому никогда не будет равенства.

Вы хотите использовать dictionary.keys() для сравнения ключей (название города).

                for row in town_reader:
                    if row['_zipcode'] in (None,""):
                        zipcode = self.get_zip_from_adr(
                            row['Formatted / parsed address field used to retrieve Geolocator'])
                        row['_zipcode'] = zipcode
                        if row['_zipcode'] in (None, ""):
                            for k in dictionary.keys(): ### <--- HERE
                                if row['_town / _city'] == k:
                                    row['_zipcode'] = dictionary[k]
                    csv_writer.writerow(row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...