AttributeError: у объекта 'str' нет атрибута 'from_header' - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в python. Похоже, что многие люди сталкиваются с подобным типом ошибки. Решения ошибок других людей не решают мою ошибку. Почему я получаю эту ошибку и как ее исправить? Thank. make_ json .py ", строка 169, in (headerList, headers) = файл readHeaders (args.hdr_file)" /home3/grad3/kpatel3/new_parser-gen/lib/python/HeaderLib.py ", строка 445, в readHeaders from_fields = item.next_header.mapping.from_header.asList () AttributeError: у объекта 'str' нет атрибута 'from_header' make: *** [../examples/headers-datacenter.json] Ошибка 1 * Вот моя часть кода:

class HeaderInfo:
    """Simple class for returning header info"""
    def __init__(self, length, lenIsVar, matchBytes, match):
        self.length = length
        self.lenIsVar = lenIsVar
        self.matchBytes = matchBytes
        self.match = match

class HeaderInfoAll:
    """Simple class for returning header info for all length/match combos"""
    def __init__(self, lenIsVar, lenBytes, lenMatch, lengths, nxtHdrBytes, nxtHdrMatch, nxtHdrs, defNxtHdrVal):
        self.lenIsVar = lenIsVar
        self.lenBytes = lenBytes
        self.lenMatch = lenMatch
        self.lengths = lengths
        self.nxtHdrBytes = nxtHdrBytes
        self.nxtHdrMatch = nxtHdrMatch
        self.nxtHdrs = nxtHdrs
        self.defNxtHdrVal = defNxtHdrVal

hdrLengths = {}
def readHeaders(filename):
    """Read all of the headers from a file"""

    fh = open(filename)
    data = fh.read()
    fh.close()
    parser = getHeaderBNF()
    intRE = re.compile(r'^\d+$')
    opRE = re.compile(r'^[+\-*]|<<|>>$')

    refCounts = {}
    headerList = []
    headers = {}
    for item in parser.parseString(data, True):

        if item.hdr not in headers:
            hdr = Header(item.hdr)
            headerList.append(hdr)
            headers[item.hdr] = hdr
            if item.fields != '':
                for fieldData in item.fields:
                    (name, width) = fieldData[0:2]
                    if width == '*':
                        width = None
                    else:
                        width = int(width)
                    hdr.addField(name, width)
                    if len(fieldData) == 3:
                        hdr.addExtractField(name)
            if item.next_header != '':
                if item.next_header.field != '':
                    hdr.setNextHeader(str(item.next_header.field))
                else:

                    from_fields = item.next_header.mapping.from_header.asList()

Кто-нибудь может помочь?

...