赋值前引用变量的问题(Python)[已关闭]

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

我正在创建一个函数来废弃谷歌搜索结果并用它们创建一个 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’”

感谢您的宝贵时间

python dataframe variables concatenation local
2个回答
0
投票
if start == 0:
    df = df_partial
else:
    df=pd.concat(df, df_partial)

else
部分指的是定义之前的
df
变量。


0
投票

def requester(query, start, results): global df headers = {  "apikey": ""} ... 

© www.soinside.com 2019 - 2024. All rights reserved.