我找到了错误的原因,但我不知道如何解决

杰森杨

'wb'表中没有A2数据,即来自'客户代码'的数据,报此错误。

我正在处理XLSX表,分析数据,并根据样本重新分配存储的数据。根据样本表的分析,现在处理的表没有样本数据。在这种情况下,我不处理它们,而只存储现有数据。

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import openpyxl 

wb = openpyxl.load_workbook('康之源药业.xlsx')
s1 = wb.active

def getdata(filename):
    data = []
    for col in s1.columns:
        '''取出每一列的值'''
        line = [cell.value for cell in col if cell.value != None]
        data.append(line)
    return data


def cachedata(data):
    '''数据储存'''
    for i in data:
        '''为空的列表不处理'''
        if len(i) != 0:
            #data.remove(i)
            if i[0] == '销售时间':
                a0 = i
            if i[0] == '生产厂家':
                a1 = i
            if i[0] == '客户代码':
                a2 = i 
            if i[0] == '客户名称':
                a3 = i
            if i[0] == '产品代码':
                a4 = i
            if i[0] == '产品名称':
                a5 = i
            if i[0] == '产品规格':
                a6 = i
            if i[0] == '单位':
                a7 = i
            if i[0] == '批号':
                a8 = i
            if i[0] == '数量':
                a9 = i
            if i[0] == '含税单价':
                a10 = i
            if i[0] == '商品名称':
                a11 = i
            if i[0] == '不含税单价':
                a12 = i
            if i[0] == '含税金额':
                a13 = i
            if i[0] == '不含税金额':
                a14 = i
            if i[0] == '出货类型':
                a15 = i
            if i[0] == '客户城市':
                a16 = i
            if i[0] == '客户地址':
                a17 = i
            if i[0] == '经销商发货单号':
                a18 = i
            if i[0] == '出货仓库':
                a19 = i
            if i[0] == '购进单位编码':
                a20 = i
            if i[0] == '一级商编码':
                a21 = i
            if i[0] == '一级商名称':
                a22 = i
    return a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22

if __name__ == '__main__':
    data = getdata(wb)
    cachedata = cachedata(data)
    a2 = cachedata[2]
    print(a2)

错误信息:

Traceback (most recent call last):
  File "C:\Users\Yang\Desktop\3.py", line 107, in <module>
    cachedata = cachedata(data)
  File "C:\Users\Yang\Desktop\3.py", line 76, in cachedata
    return a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22
UnboundLocalError: local variable 'a2' referenced before assignment

但是当我添加a2数据时,代码有效。

Akaisteph7

尝试为您的变量添加一个默认值,cachedata以便它们仍然存在,无论它们是否被分配了一个值:

def cachedata(data):
    a0 = a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = a10 = a11 = a12 = a13 = a14 = \
    a15 = a16 = a17 = a18 = a19 = a20 = a21 = a22 = []
    '''数据储存'''
    for i in data:
        '''为空的列表不处理'''
        if len(i) != 0:
            #data.remove(i)
            if i[0] == '销售时间':
                a0 = i
            if i[0] == '生产厂家':
                a1 = i
            if i[0] == '客户代码':
                a2 = i 
            if i[0] == '客户名称':
                a3 = i
            if i[0] == '产品代码':
                a4 = i
            if i[0] == '产品名称':
                a5 = i
            if i[0] == '产品规格':
                a6 = i
            if i[0] == '单位':
                a7 = i
            if i[0] == '批号':
                a8 = i
            if i[0] == '数量':
                a9 = i
            if i[0] == '含税单价':
                a10 = i
            if i[0] == '商品名称':
                a11 = i
            if i[0] == '不含税单价':
                a12 = i
            if i[0] == '含税金额':
                a13 = i
            if i[0] == '不含税金额':
                a14 = i
            if i[0] == '出货类型':
                a15 = i
            if i[0] == '客户城市':
                a16 = i
            if i[0] == '客户地址':
                a17 = i
            if i[0] == '经销商发货单号':
                a18 = i
            if i[0] == '出货仓库':
                a19 = i
            if i[0] == '购进单位编码':
                a20 = i
            if i[0] == '一级商编码':
                a21 = i
            if i[0] == '一级商名称':
                a22 = i
    return a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:我不断收到广播错误,但我不知道如何解决它

python cPickle.PicklingError:无法腌制<type'instancemethod'>。我知道原因,但我不知道如何解决它

我的Swift应用出现错误,但我不知道如何解决?你能帮助我吗?

我遇到这些错误,不知道如何解决

我的脚本出现语法错误,但我不知道为什么以及如何解决它>

我想做一个计数对象,但我不知道如何解决

C++ C26495 警告出现但我不知道如何解决

我的页码显示有错误,我知道为什么以及在哪里但我不知道如何解决它们 (PyQt)

我收到一条错误消息,我不知道如何解决

我的`Buttonhandler`总是会导致此错误,我不知道如何解决

我在 Flutter 中有一个错误,我不知道如何解决

如何解决:我的第二个 if 语句出现语法错误,但我不知道为什么?

我正在尝试将数据存储在sql server中,但遇到了一个我不知道如何解决的错误

React 不渲染组件 - 我发现了问题,但我不知道如何解决它

我在Swift 3中不断收到“信号1:SIGABRT”,但我不知道该如何解决

我不知道如何解决 OpenCV Python 问题

我不知道该如何解决

我的代码失败了,但我不知道原因

SQL Server事务和事务隔离-收到我不知道如何解决的错误

我不知道如何解决 Visual Studio 中的“CS5001”错误

我确实知道如何解决语言/音频问题,但我不知道如何将其作为代码组合在一起

我的代码上出现以下错误,我不知道它们是什么意思,也不知道如何解决它们

我不知道如何使用 boost,虽然我的老师确实提供了代码,但我收到了一个错误

我正在尝试开发Web服务REST应用程序。我不知道如何解决以下错误

我在调用构造函数时有一个错误(我认为)不知道如何解决它

我的代码出错,但我不知道如何修复

查询错误,但我不知道它在哪里

如何部署travis自动构建,我的失败了,我不知道如何解决

我的元素不在屏幕上,我不知道如何解决