如何修复谷歌索引API内循环问题?



我有一个谷歌索引API代码的工作。代码如下:

from oauth2client.service_account import ServiceAccountCredentials 
import httplib2 
SCOPES = ["https://www.googleapis.com/auth/indexing"] 
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish" 
# service_account_file.json is the private key
# that you created for your service account. 
JSON_KEY_FILE = "/content/astute-tractor-329613-1baed60ec1c0.json" 
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES) 
http = credentials.authorize(httplib2.Http()) 
content = """{ 
"url": "https://sitename.com/index.php", 
"type": "URL_UPDATED" 
}""" 
response, content = http.request(ENDPOINT, method="POST", body=content)
if response.status == 200:
print(f'The submission was successful. Google reported a {response.status} response code.')
else:
print(f'The submission was not successful. Google reported a {response.status} response code, instead of 200.')

我可以用它一个接一个地添加url,但我想给它提供一个CSV文件,这样它就可以逐行读取并将其发送给Google。

我创建了以下代码:
from oauth2client.service_account import ServiceAccountCredentials 
import httplib2 
import csv

SCOPES = ["https://www.googleapis.com/auth/indexing"] 
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish" 
# service_account_file.json is the private key
# that you created for your service account. 
JSON_KEY_FILE = "/content/astute-tractor-329613-1baed60ec1c0.json" 
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES) 
http = credentials.authorize(httplib2.Http()) 
with open('/content/indekseerida-1.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
content = """{ 
"url": row[0], 
"type": "URL_UPDATED" 
}""" 
response, content = http.request(ENDPOINT, method="POST", body=content)
if response.status == 200:
print(f'The submission was successful. Google reported a {response.status} response code.')
else:
print(f'The submission was not successful. Google reported a {response.status} response code, instead of 200.')

这只给我返回错误响应代码400。我对编程很陌生,所以不要对我太苛刻:)

在for循环中放入一个print(content)语句,我想你会发现它并不包含你认为它包含的东西。整个字符串就是你输入的文字。

你需要这样写:

content = f"""{{ 
"url": {row[0]}, 
"type": "URL_UPDATED" 
}}""" 

f"""创建一个字符串插值,其中{}中的内容被评估。然后需要{{}}来获得大括号。

最新更新