簡體   English   中英

我一直收到在賦值之前引用局部變量的錯誤? 我該如何解決?

[英]I keep getting the error of referencing a local variable before assignment! how do I solve this?

感謝您花時間幫助我。 我正在寫一個 web 在 django 中刮擦 api 但在過去 5 天里遇到了一個可怕的錯誤。 奇怪的是,在 macOS 上絕對沒有錯誤,當我部署到 AWS 時,它會向我拋出變量引用錯誤。 ubuntu 具有 python 3.6.8 和 macOS 具有 python 3.6.6

我已經嘗試了不同的方法,但現在我想不出任何方法! 應該返回的抓取數據在 macOS 上返回正常,但在 ubuntu 上我被壓垮了! 請幫忙!

data_list = []
div_class = scrape_driver_2.find(class_ = 'c1_t2i')
daraz_products = scrape_driver.find_all(class_ = 'c2prKC')

for data_fragment in daraz_products: # iterate and find all classes 
    data_block = data_fragment.text.strip()  # Convert code to text
    formatted_block = data_block.replace('ADD TO CART', '')

    second_iterated_block = formatted_block.replace('%', '')
    third_iterated_block = second_iterated_block.replace(')Pakistan', ')-Pakistan')

    fourth_iterated_block = third_iterated_block.replace('Pakistan', '-Pakistan')

    data_list.append(fourth_iterated_block)
    high_data = [{"Timestamp": time_stamp,
                  "TS Token": ts_token,
                  "Status": sitrep},
                  data_list] 

return Response({"data": high_data})
engine_initializer.close()

我得到的錯誤是:UnboundLocalError at /api/big-budget-filter/ local variable 'high_data' referenced before assignment

將 high_data 保留在循環之外,並在所有迭代后返回之前設置它。

data_list = []
div_class = scrape_driver_2.find(class_ = 'c1_t2i')
daraz_products = scrape_driver.find_all(class_ = 'c2prKC')

for data_fragment in daraz_products: # iterate and find all classes 
    data_block = data_fragment.text.strip()  # Convert code to text
    formatted_block = data_block.replace('ADD TO CART', '')

    second_iterated_block = formatted_block.replace('%', '')
    third_iterated_block = second_iterated_block.replace(')Pakistan', ')-Pakistan')

    fourth_iterated_block = third_iterated_block.replace('Pakistan', '-Pakistan')

    data_list.append(fourth_iterated_block)



high_data = [{"Timestamp": time_stamp,
                  "TS Token": ts_token,
                  "Status": sitrep},
                  data_list] 

return Response({"data": high_data})

編輯:根據這篇文章的評論,一個帶有虛擬數據的簡化示例版本

data_list = []

daraz_products = ["prod1","prod2","prod3"]

for data_fragment in daraz_products:
     data_list.append(data_fragment)

print data_list

data_list 將包含來自 daraz_products 的所有產品

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM