我正在创建一个函数来废弃谷歌搜索结果并用它们创建一个 df 。我在函数中遇到了一个问题,该变量显然是在赋值之前被引用的,并且我遇到了这个问题。
我创建的函数是这个:
def requester(query, start, results):
headers = {
"apikey": ""}
params = (
("q",query),
("num", results),
("start", start)
)
resp = requests.get('https://app.zenserp.com/api/v2/search', headers=headers, params=params);
data = json.loads(resp.text)
df_partial = pd.json_normalize(data["organic"])
if start == 0:
df = df_partial
else:
df=pd.concat(df, df_partial)
df["query"] = query
创建函数后,我用这一行调用它:
start_points = [*range(0, 300, 100)]
for i in start_points:
requester("my query", i, "100")
API所需的sintaxis没问题,我可以单独下载信息。当我尝试实现此函数以附加/连接对 API 的不同调用时,我的问题出现了。
我得到的错误是:
“UnboundLocalError:赋值前引用了局部变量‘df’”
感谢您的宝贵时间
if start == 0:
df = df_partial
else:
df=pd.concat(df, df_partial)
else
部分指的是定义之前的df
变量。
def requester(query, start, results): global df headers = { "apikey": ""} ...