def get_district_postcode_errors(self, comparison_view='compare',
fhrs_table='fhrs_establishments', district_id=182):
"""Get OSM entities which have an fhrs:id that matches an FHRS
establishment but has no postcode or a mismatching one.
comparison_view (string): name of comparison database view
fhrs_table (string): name of FHRS establishments database table
district_id (integer): Boundary Line district ID
Returns dict
"""
dict_cur = self.connection.cursor(cursor_factory=DictCursor)
sql = ('SELECT osm_name, osm_id, osm_fhrsid, osm_postcode, fhrs_postcode,\n' +
'TRIM(TRAILING \' \' FROM osm_type) AS osm_type,\n' +
'CONCAT(substring(osm_type FROM 1 FOR 1), osm_id) AS osm_ident,\n' +
'CONCAT(\n' +
'CASE WHEN "AddressLine1" IS NOT NULL THEN\n' +
' CONCAT(\'%7Cfixme:addr1=\', "AddressLine1") END,\n' +
'CASE WHEN "AddressLine2" IS NOT NULL THEN\n' +
' CONCAT(\'%7Cfixme:addr2=\', "AddressLine2") END,\n' +
'CASE WHEN "AddressLine3" IS NOT NULL THEN\n' +
' CONCAT(\'%7Cfixme:addr3=\', "AddressLine3") END,\n' +
'CASE WHEN "AddressLine4" IS NOT NULL THEN\n' +
' CONCAT(\'%7Cfixme:addr4=\', "AddressLine4") END,\n' +
'CASE WHEN "PostCode" IS NOT NULL THEN\n' +
' CONCAT(\'%7Caddr:postcode=\', "PostCode") END,\n' +
'\'%7Csource:addr=FHRS Open Data\') AS add_tags_string\n' +
'FROM compare\n' +
'LEFT JOIN ' + fhrs_table + ' ON fhrs_fhrsid = "FHRSID"\n' +
'WHERE status = \'matched_postcode_error\' AND '
'osm_district_id = ' + str(district_id))
dict_cur.execute(sql)
result = []
for row in dict_cur.fetchall():
result.append(row)
return result
评论列表
文章目录