Python:AttributeError:' datetime.datetime'对象没有属性' split'

时间:2015-11-13 16:27:49

标签: python datetime

我有这段代码:

    import datetime
import time

from pysolar.solar import * \

aaaa=-1
anno_array = []
#creo una lista dove avrò le date e gli orari di tutto l'anno 2014
data = datetime.datetime(2014, 1, 1, 0, 0)
#con la funzione timedelta incremento la data del 1 gennaio 2014 a mezzanotte
#di un minuto fino ad arrivare al 31 dicembre 2014 alle 23 e 59 (ho così un range di
#525600 minuti in un anno)
for i in range(0,525599):
    data += datetime.timedelta(minutes=1)
    anno_array.append(data)
    flusso_diretto_medio_teorico_W_mq_array = []
    flusso_diretto_medio_teorico_W_mq_array_anno = []
    aaaa=aaaa+1
    for line2 in anno_array:
        Type2=line2.split(" ")
        data_2 = Type2[0]
        orario_2 = Type[1]
        #ora devo dividere la data in giorno, mese e anno e l'orario in ore e minuti
        anno2, mese2, giorno2 = data_2.split("-")
        ora2, minuto2, secondo2 = orario_2.split(":")
        anno_2 = int(anno2)
        mese_2 = int(mese2)
        giorno_2 = int(giorno2)
        ora_2 = int(ora2)
        minuto_2 = int(minuto2)

        d_2 = datetime.datetime(anno_2, mese_2, giorno_2, ora_2, minuto_2)
        # dati di input
#posizione geografica
        latitudine = 43.8016626
        longitudine = 11.2558136

#calcolo elevazione sole - altitude
        sole_elevazione = get_altitude(latitudine, longitudine, d)
        sole_elevazione_radianti = math.radians(sole_elevazione)
        sole_zenith = 90 - sole_elevazione
        sole_zenith_radianti =  math.radians(sole_zenith)

#visto che la libreria non è in grado di gestire valori di elevazione negativi si forza il codice

        if sole_elevazione < 0:
            sole_elevazione = 0

#pysolar calcola anche l'irraggiamento diretto teorico

        irraggiamento_diretto = radiation.get_radiation_direct(d, sole_elevazione)

# per fare i confronti con dati lamma è utile sapere l'intensità di flusso diretto su un piano
#il lamma misura sul piano la totale e la diffusa. la differenze possiamo dire che è la diretta su un piano
#il calcolo è simile solo che come cos prendiamo  quello dell'elevazione del sole 

        irraggiamento_diretto_su_piano_terreno = abs(math.cos(sole_zenith_radianti)) * irraggiamento_diretto 
        aaaa=aaaa+1
        flusso_diretto_medio_teorico_W_mq_array_anno.append(irraggiamento_diretto_su_piano_terreno)

但它不起作用,因为它说:AttributeError:&#39; datetime.datetime&#39;对象没有属性&#39; split&#39; 我能怎么做?我想要一个代码,从列表中选择日期的值,然后使用它们。 谢谢

1 个答案:

答案 0 :(得分:0)

首先使用.strftime("%Y-%m-%d %H:%M:%S")将其设为字符串,但即使这样也很愚蠢并直接调用月份等

例如

datetime.month