Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我总是在赋值前引用局部变量时出错!我如何解决这个问题?_Python_Django_Python 3.x_Variables_Error Handling - Fatal编程技术网

Python 我总是在赋值前引用局部变量时出错!我如何解决这个问题?

Python 我总是在赋值前引用局部变量时出错!我如何解决这个问题?,python,django,python-3.x,variables,error-handling,Python,Django,Python 3.x,Variables,Error Handling,谢谢你抽出时间来帮我。我正在用django编写一个web抓取api,但在过去的5天里一直出现一个可怕的错误!奇怪的是,在macOS上绝对没有错误,当我部署到AWS时,它会向我抛出变量引用错误!ubuntu有Python3.6.8,macOS有Python3.6.6 我已经尝试过不同的方法,但现在我想不出任何方法!在macOS上,应该返回的刮取数据返回良好,但在ubuntu上,我被压碎了!请帮忙 data_list = [] div_class = scrape_driver_2.find(cla

谢谢你抽出时间来帮我。我正在用django编写一个web抓取api,但在过去的5天里一直出现一个可怕的错误!奇怪的是,在macOS上绝对没有错误,当我部署到AWS时,它会向我抛出变量引用错误!ubuntu有Python3.6.8,macOS有Python3.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()
我得到的错误是:
在/api/big-budget筛选器处取消绑定LocalError/
分配前引用的局部变量“high_data”将high_data保留在循环之外,并在所有迭代后设置它,然后返回

data_list=[]
div_class=scrape_driver_2.find(class_u='c1_t2i')
daraz_products=scrape_driver.find_all(类_u='c2prKC')
对于daraz_产品中的数据_片段:#迭代并查找所有类
data_block=data_fragment.text.strip()#将代码转换为文本
格式化的块=数据块。替换('添加到购物车','')
第二个迭代块=格式化块。替换('%,'')
第三个迭代块=第二个迭代块。替换(“)巴基斯坦”,“巴基斯坦”)
第四个迭代块=第三个迭代块。替换('Pakistan','-Pakistan')
数据列表.append(第四个迭代块)
高_数据=[{“时间戳”:时间戳,
“TS令牌”:TS_令牌,
“状态”:sitrep},
数据表]
返回响应({“数据”:高_数据})
编辑:根据这篇文章的评论,一个带有虚拟数据的简化示例版本

data_list=[]
daraz_产品=[“产品1”、“产品2”、“产品3”]
对于daraz_产品中的数据_片段:
数据列表。追加(数据片段)
打印数据列表

数据列表将包含daraz_products的所有产品

这意味着
daraz_products
为空,因此从不设置
高数据
。可能是
daraz_products
为空。请始终在您的问题中粘贴完整的错误回溯,这样我们就不必猜测错误发生在哪里。这个完全相同的代码片段会刮除macOS上的所有产品,先生,在ubuntu上。这个错误正在刺穿我的h311@Ali_Rashid:那么你刮的网页可能无法访问,或者为不同的代理呈现不同的内容。UnboundLocalError位于/api/big budget filter/分配前引用的局部变量“high_data”Django版本:2.2.5异常类型:UnboundLocalError异常值:分配前引用的局部变量“high_data”异常位置:/home/ubuntu/Exodis Django/Exodis Django先生,我可以再试一次,但有趣的是我的代码在macOS上运行时没有错误,但在AWS ubuntu上它会抛出错误!它将不返回任何内容,只返回空的
数据列表
它必须向数据列表追加已刮取的数据,然后将追加的数据列表传递给high\u数据并返回high\u数据。如果没有意义,则将数据追加到循环内的列表中。一旦添加,在最后一次迭代后它就不会是空的。我知道这很奇怪,我现在正在发你建议的方法,我希望它能工作,但是为什么我在AWS ubuntu上出错的代码不能工作,但是在macOS上它能工作呢?