Python:在在线 CSV 文件中搜索

时间:2021-07-05 19:43:23

标签: python csv

我目前坚持使用 Python 项目,我想从在线 CSV 文件中获取信息,并希望让用户通过输入函数进行搜索。目前,我可以通过链接从在线 CSV 文件中获取信息,但我无法建立连接,以便它在该 CSV 文件中搜索确切的单词。

我目前尝试了多个教程,但大多数都没有解决我的问题。所以带着很多痛苦,我在这里写下这个消息,希望有人能帮我。

我到目前为止的代码是:

import csv
import urllib.request

metar_search = input('Enter the ICAO station\n')

url = 'https://www.aviationweather.gov/adds/dataserver_current/current/metars.cache.csv'
response = urllib.request.urlopen(url)
lines = [l.decode('utf-8') for l in response.readlines()]
cr = csv.reader(lines)

for row in cr:
    if metar_search == row[0]:
        print(row)

在 CSV 文件中,第一行是我要查找的内容。它是机场的 METAR 信息。因此,我希望用户输入 ICAO 代码(例如 KJFK),然后我希望该站的天气信息文本行(例如:KJFK 051851Z 15010KT 10SM FEW017 FEW035 FEW250 27/19 A3006 RMK AO2 SLP177 T02670194)。 当我当前键入 KJFk 时,它不会返回任何信息。

当前的代码可能有点乱,因为我尝试了几件事,我也尝试过使用它,但没有运气。我做错了什么?

我希望有人能够帮助我解决这个问题。

在此先感谢您。

1 个答案:

答案 0 :(得分:1)

试试

...
for row in cr:
    if row[0].startswith(metar_search):
        print(row)

...
lines = [l.decode('utf-8') for l in response.readlines()[5:]]
cr = csv.reader(lines)

for row in cr:
    if metar_search == row[1]:
        print(row)

提示:仔细查看数据。

如果您知道只有一个结果,那么您可以在找到该行后停止搜索:

...
        print(row)
        break