用于将具有纬度和经度的 .csv 文件与数据类进行比较的循环

For loop to compare a .csv file with Latitudes and longitudes to a Dataclass

正如标题所暗示的那样,由于我缺乏经验:(我实际上面临着如何实际解决这个问题的问题,具体如下:

1.- 我有一个函数(内置于自定义 python 库中)returns传递 2 个参数后的数据类,即纬度和经度(编号项目符号下方的示例)

2.- 我还有一个包含 2 个值的 .csv 文件,即纬度和经度。

3.- 我需要实际构建某种 for 循环来实际遍历整个 .csv 文件并传递它们依次执行上述功能,以便通过终端显示所有 responses/dataclasses,或者如果可能的话,将其传递到 .txt 文件或类似文件(以待定的工作方式为准)。

实际函数是这样调用的:

from apps.geo.address_list.servlet import retrieve retrieve_addresses_latlng

response = retrieve_addresses_latlng(33.593801,-112.230910)   ##here you simply pass it the lat,lng

这给了我们一个看起来像这样的数据类:

AddressData(country_code='US', administrative_area_level_1='US', county='San Diego County', postal_code='92056', 579068)

有了这个,我实际上需要能够以“顺序”方式将我提到的 .csv 文件中的每个 lat,lng 传递给实际函数,以根据需要实际触发函数多次,并且能够通过控制台或 .txt 文件查看所有输出:')

任何帮助或指导将不胜感激,因为我在编程方面真的很新,但我渴望了解更多这个神奇的世界:D

致以最诚挚的问候,感谢您的帮助!

假设每组坐标在 CSV 文件的单独一行中,您可以这样做:

from apps.geo.address_list.servlet import retrieve_addresses_latlng

with open('file.csv', 'r') as f:
    for line in f.readlines():
        lat, lng = line.split(',')
        data = retrieve_address_latlng(lat, lng)
        print(data)

这是一种从文件中逐行读取数据的非常简单的方法。您可以改用 CSV 解析库,但对于这个简单的示例,您将学到更多手动操作数据的知识。

此解决方案的 'sequential' 部分是 for 循环,它遍历 f.readlines().

提供的每组坐标(每行一个)