Set-upIterieren durch Bereich zwischen Saiten
Mit Scrapy, ich Schaben Wohnungsanzeigen. Pro Wohnungsanzeige erhalte ich eine Postleitzahl. Postleitzahlen Bezirke
ein Wörterbuch haben Verknüpfung
postal_district = {'A': ['1011AB', '1011BD', '1011BG', '1011CE',
'1011CH', '1011CZ', '1011DB', '1011DD']}
Das gesamte Wörterbuch kann here angezeigt werden.
Jeweils zwei aufeinanderfolgende Postleitzahlen in der Liste bilden einen Bereich - die erste Postleitzahl ist die Min des Bereichs, die zweite Postleitzahl ist der max.
z. jede Postleitzahl in
'1011AB', '1011AC',...,'1011AZ', '1011BA',...,'1011BD'
gehört 'A'
zu Bezirk.
Mein Ziel ist es, Anzeigen über die Postleitzahl und das Wörterbuch den Distrikten zuzuordnen.
Problem
Ich habe eine vorhergehende Frage here gefragt und haben diese answer zu lösen, das Problem zu folgen gewählt.
So ich bin mit dem folgenden Code, um die Anzeigen auf die Bezirke entsprechen,
def is_in_postcode_range(current_postcode, min, max):
return min <= current_postcode <= max
def get_district_by_post_code(postcode):
for district, codes in postal_district.items():
first_code = codes[0]
last_code = codes[-1]
if is_in_postcode_range(postcode, first_code, last_code):
if any(is_in_postcode_range(postcode, codes[i], codes[i+1]) for i in range(0, len(codes), 2)):
return district
else:
return None
district = get_district_by_post_code(pc)
Für einige Postleitzahlen dies funktioniert. Viele Postleitzahlen sind jedoch nicht identisch. 1035CK
, 1072LL
, 1059EC
sind unübertroffen, um nur einige zu nennen.
Was ist los? Ist es das Wörterbuch oder der Code?
Ich habe das Wörterbuch sortiert.
Ich werde verdammt sein. – LucSpan