簡體   English   中英

將值從熊貓數據幀傳遞給 http 請求

[英]passing value from panda dataframe to http request

我不知道我應該如何問這個問題。 我正在使用熊貓循環瀏覽 csv 文件(至少我是這么認為的)。 當我遍歷行時​​,我想從特定列傳遞一個值來為每一行運行一個 http 請求。

到目前為止,這是我的代碼:

def api_request(request): 
    fs = gcsfs.GCSFileSystem(project=PROJECT)
    with fs.open('gs://project.appspot.com/file.csv') as f:
        df = pd.read_csv(f,)
        value = df[['ID']].to_string(index=False)
        print(value)
        response = requests.get(REQUEST_URL + value,headers={'accept': 'application/json','ClientToken':TOKEN }
        )
        json_response = response.json()
        print(json_response)

如您所見,我正在遍歷 csv 文件以獲取 ID 以將其傳遞給我的請求 url。

我不確定我是否理解這個問題,但查看控制台日志似乎當響應請求不是時print(value)處於循環中。 換句話說,在控制台日志中,我看到打印了所有 ID,但我只看到一個空的 http 請求(可能是因為 ID 沒有正確傳遞給它)。

我正在使用雲函數運行我的腳本。

實際上,放棄使用 Pandas 庫並簡單地遍歷 csv

import csv

def api_request(request): 
    fs = gcsfs.GCSFileSystem(project=PROJECT)
    with fs.open('gs://project.appspot.com/file.csv') as f:
        reader = csv.reader(f)
        next(reader, None)                 # SKIP HEADERS

        for row in reader:                 # LOOP THROUGH GENERATOR (NOT PANDAS SERIES)
            value = row[0]                 # SELECT FIRST COLUMN (ASSUMED ID)
            response = requests.get(
                 REQUEST_URL + value,
                 headers={'accept': 'application/json', 'ClientToken': TOKEN }
            )     
            json_response = response.json()
            print(json_response)

試試這個:

def api_request(request): 
    fs = gcsfs.GCSFileSystem(project=PROJECT)
    with fs.open('gs://project.appspot.com/file.csv') as f:
        df = pd.read_csv(f)
        for value in df['ID']:
            response = requests.get(
                REQUEST_URL + value,
                headers = {'accept': 'application/json', 'ClientToken': TOKEN }
            )
            json_response = response.json()
            print(json_response)

正如我在評論中提到的,您還沒有遍歷數據。 您所看到的只是帶有換行符的字符串表示(這可能是您錯誤地認為是循環的原因)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM