requests.put 不要更新电子表格

问题描述 投票:0回答:2

我正在尝试在 Sheety 的帮助下更新电子表格中的行(参见附件)。我希望“IATA 代码”列填充单元格值“TESTING”。当我运行代码时,它没有给我任何错误,但它不会更新电子表格。为什么不更新电子表格?

import requests

API_KEY_GET = "my_key_for_get"
API_KEY_PUT = "my_key_for_put (without [Object ID]"
TELLER = 2

response = requests.get(url=API_KEY_GET)
response.raise_for_status()
data = response.json()
sheet_data = [p for p in data["prices"]]

for iat in sheet_data:
    iat["iataCode"] = "TESTING"

for i in sheet_data:
    sht_inputs = {
        "price": {
            "City": i["city"],
            "IATA Code": i["iataCode"],
            "Lowest Price": i["lowestPrice"]
        }
    }
    sht_response = requests.put(url=f"{API_KEY_PUT}{TELLER}", json=sht_inputs)
    TELLER += 1
    sht_response.raise_for_status()

我在 Sheety 中尝试了一个具有不同名称的新项目。电子表格也不会更新 我尝试邮寄而不是放置。如果我发布添加行,电子表格也不会更新。

python api google-sheets put
2个回答
0
投票

我对此也有同样的问题。 这是我的解决方案:

import requests

FLIGHT_URL = "https://api.tequila.kiwi.com/locations/query"
FLIGHT_API = "kwncSx7gdoQSIjBQ8_yyVyrNcCkq3wuW"
CITIES = ["Paris", "Berlin", "Tokyo", "Sydney", "Istanbul", "New York", "Kuala Lumpur", "San Francisco", "Cape Town"]

SHEETY_URL = "https://api.sheety.co/047bf28f7ad1b00e907d155576a1d720/myFlightDeals/flights"
row_id = 2

for item in CITIES:
    flight_parameters = {
        "term": item
    }
    flight_header = {
        "apikey": FLIGHT_API
    }
    response_flight = requests.get(url=FLIGHT_URL, params=flight_parameters, headers=flight_header)
    code = response_flight.json()["locations"][0]["code"]

    sheety_parameters = {
        "flight": {
            "iataCode": code,
        }
    }

    response_sheety = requests.put(url=f"{SHEETY_URL}/{row_id}", json=sheety_parameters)
    row_id += 1

0
投票

Sheety 使用驼峰命名法,因此您必须重新排列 json 字典中的列名称:

sht_inputs = {
    "price": {
        "city": i["city"],
        "iataCode": i["iataCode"],
        "lowestPrice": i["lowestPrice"]
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.