gpt4 book ai didi

python - 解析 API 响应 CSV 到列表而不写入文件

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:51 25 4
gpt4 key购买 nike

目标:

  • 直接读取 .csv API 对 Python 列表的响应

我正在使用人口普查局的批量 Geocoder获取许多地址的纬度/经度。 documentation批量地理编码位于第 5-6 页。

我希望能够在不先保存文件的情况下将此 csv 读取到列表中。

我的第一次尝试是执行以下操作:

获取回复:

    import requests
import csv

url = 'http://geocoding.geo.census.gov/geocoder/locations/addressbatch'
payload = {'benchmark':'Public_AR_Current', 'vintage':'Current_Current', 'returntype':'locations'}
files = {'addressFile':('Addresses.csv',open(tmp_file,'rb'),'text/csv')}
response = requests.post(url,data=payload,files=files)

处理响应(不写入文件):

    reader = csv.reader(response.content)
tmp_list = list(reader)

print(tmp_list)

输出是一个一维列表:

[[unique_id], [input_address], [match/no_match], [exact/non-exact], [output_address], [lat/long], [tiger_line_id], [tiger_line_side], [ ], .... ]

换行符被读取为要放入列表中的元素(显示为 [ ])。

但是,如果我执行以下操作:

处理响应(首先将响应写入文件):

    with open('out.csv','w') as f:
f.write(response.content)

with open('out.csv','rb') as r:
reader = csv.reader(r)
tmp_list = list(reader)

print(tmp_list)

此方法的输出是所需的二维列表列表:

[[unique_id, input_address, match/no_match, exact/non-exact, output_address, lat/long, tiger_line_id, tiger_line_side], .... ]

如何直接读取列表的 .csv 响应?我想避免 I/O 操作,因为我可能一次执行 300 多个批处理(这将是 300 多个写入文件/从文件读取。

最佳答案

csv.reader类接受的可迭代对象;如果您在传递内容之前按行分割内容,它应该可以工作:

reader = csv.reader(response.content.split('\n'))

关于python - 解析 API 响应 CSV 到列表而不写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com