python:TypeError:“NoneType”对象又没有属性“\u getitem”

2024-09-24 08:31:27 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码返回一个typeerror。我试了很多次,但我不知道该怎么办。下面是代码,如果有人能做到,那就太好了:

import sys
from elasticsearch import Elasticsearch

start = 0
fetch = 1
sz = 50
sStatus = True

es = Elasticsearch(host='distribution.virk.dk', port=80, http_auth='USERID:CODEID')


def getPage():
    global start
    #result = es.search(index='cvr-permanent-prod-20151209', doc_type="virksomhed", from_=start, size=sz, q= 'Vrvirksomhed.cvrNummer:36549807')
    if (sStatus):
        result = es.search(index='cvr-permanent-prod-20151209', doc_type="virksomhed", size=sz, q='Vrvirksomhed.virksomhedMetadata.sammensatStatus:NORMAL', body= '{"filter":{"range":{"Vrvirksomhed.cvrNummer":{"gt":'+str(start)+'}}},"sort":[{"Vrvirksomhed.cvrNummer":{"order":"asc"}}]}')
    else:
        result = es.search(index='cvr-permanent-prod-20151209', doc_type="virksomhed", size=sz, body= '{"filter":{"range":{"Vrvirksomhed.cvrNummer":{"gt":'+str(start)+'}}},"sort":[{"Vrvirksomhed.cvrNummer":{"order":"asc"}}]}')
    #result = es.search(index='cvr-permanent-prod-20151209', doc_type="virksomhed", from_=start, size=sz)

    for entry in result['hits']['hits']:
        start = entry['_source']['Vrvirksomhed']['cvrNummer']
        print str(entry['_source']['Vrvirksomhed']['cvrNummer']) + ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteNavn']['navn'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteNavn']['navn'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['sammensatStatus'].encode('utf-8')) + '",',
        print str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['postnummer']) + "," if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['postnummer'] !=None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['kommune']['kommuneNavn'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['kommune']['kommuneNavn'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['postdistrikt'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['postdistrikt'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['landekode'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['landekode'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['bynavn'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['bynavn'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['vejnavn'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['vejnavn'] != None) else ",",
        print str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['husnummerFra']) + "," if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['husnummerFra'] != None) else ",",
        print str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['husnummerTil']) + "," if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['husnummerTil'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['etage'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['etage'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['sidedoer'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['sidedoer'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['bogstavFra'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['bogstavFra'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['bogstavTil'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['bogstavTil'] != None) else ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['fritekst'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteBeliggenhedsadresse']['fritekst'] != None) else ",",
        if ('reklamebeskyttet' in entry['_source'] and entry['_source']['reklamebeskyttet'] != None):
            print str(entry['_source']['reklamebeskyttet'].encode('utf-8')),
        print ",",
        if ('telefonNummer' in entry['_source']):
            tmp = ''
            for tel in entry['_source']['telefonNummer']:
                tmp += str(tel['kontaktoplysning'].encode('utf-8')) + " | "
            print str(tmp),
        print ",",
        print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteVirksomhedsform']['kortBeskrivelse'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteVirksomhedsform']['kortBeskrivelse'] != None) else ",",
        if ('nyesteKvartalsbeskaeftigelse' in entry['_source']['Vrvirksomhed']['virksomhedMetadata'] and entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteKvartalsbeskaeftigelse'] != None):
            print str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteKvartalsbeskaeftigelse']['kvartal']) + "," if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteKvartalsbeskaeftigelse']['kvartal'] != None) else ",",
            print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteKvartalsbeskaeftigelse']['intervalKodeAntalAnsatte'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteKvartalsbeskaeftigelse']['intervalKodeAntalAnsatte'] != None) else ",",
        else:
            print ", ,",
        if ('nyesteHovedbranche' in entry['_source']['Vrvirksomhed']['virksomhedMetadata'] and entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteHovedbranche'] != None):
            print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteHovedbranche']['branchekode'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteHovedbranche']['branchekode'] != None) else ",",
            print '"' + str(entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteHovedbranche']['branchetekst'].encode('utf-8')) + '",' if (entry['_source']['Vrvirksomhed']['virksomhedMetadata']['nyesteHovedbranche']['branchetekst'] != None) else ",",
        else:
            print ", ,",
        navne = '"'
        vaerdi = '"'
        for dr in entry['_source']['Vrvirksomhed']['deltagerRelation']:
            for org in dr['organisationer']:
                for orN in org['organisationsNavn']:
                    if (orN['navn'] == "EJERREGISTER"):
                        if ('deltager' in dr and dr['deltager'] != None and 'navne' in dr['deltager'] and dr['deltager']['navne'] != None):
                            for de in dr['deltager']['navne']:
                                navne += str(de['navn'].encode('utf-8'))  + " | "
                            break
                for md in org['medlemsData']:
                    for att in md['attributter']:
                        if (att['type'] != "EJERANDEL_PROCENT"):
                            break
                        for vrdier in att['vaerdier']:
                            vaerdi += str(vrdier['vaerdi'].encode('utf-8')) + " | "
        print str(navne) + '",',
        print str(vaerdi) + '",',
        print "\n",



if __name__ == '__main__':
    if (len(sys.argv) >= 3):
        start = long(sys.argv[1])
        fetch = int(sys.argv[2])
    print "cvrNummer,navn,sammensatStatus,postnummer,kommuneNavn,postdistrikt,landekode,bynavn,vejnavn,husnummerFra,husnummerTil,etage,sidedoer,bogstavFra,bogstavTil,fritekst,reklamebeskyttet,kontaktoplysning,kortBeskrivelse,kvartal,intervalKodeAntalAnsatte,branchekode,branchetekst,ejerregister,ejerandel_procent"

    for i in range(0,fetch):
        getPage()

并在获取数据时给出以下错误:

^{pr2}$

我做错什么了


Tags: innonesourceforifstartelseutf