So I have already imported one XML-ish file with 3000 elements and parsed them into a CSV for output. But I also need to import a second CSV file with ‘keyword’,’latitude’,’longitude’ as columns and use it to add the GPS coordinates to additional columns on the first file.
Reading the python tutorial, it seems like {dictionary} is what I need, although I’ve read on here that tuples might be better. I don’t know.
But either way – I start with:
floc = open('c:\python\kenya_location_lookup.csv','r')
l = csv.DictReader(floc)
for row in l: print row.keys()
The output look like:
{‘LATITUDE’: ‘-1.311467078’, ‘LONGITUDE’: ‘36.77352011’, ‘KEYWORD’: ‘Kianda’}
{‘LATITUDE’: ‘-1.315288401’, ‘LONGITUDE’: ‘36.77614331’, ‘KEYWORD’: ‘Soweto’}
{‘LATITUDE’: ‘-1.315446430425027’, ‘LONGITUDE’: ‘36.78170621395111’, ‘KEYWORD’: ‘Gatwekera’}
{‘LATITUDE’: ‘-1.3136151425171327’, ‘LONGITUDE’: ‘36.785863637924194’, ‘KEYWORD’: ‘Kisumu Ndogo’}
I’m a newbie (and not a programmer). Question is how do I use the keys to pluck out the corresponding row data and match it against words in the body of the element in the other set?
If you dump the DictReader into a list (
data = [row for row in csv.DictReader(file)]), and you have unique keywords for each row, convert that list of dictionaries into a dictionary of dictionaries, using that keyword as the key.Once you have the keyword pulled out, you can iterate through your other list, grab the keyword from it, and use it as the index for the lat/long list. Pull out the lat/long from that index and add it to the other list.