[英]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.