Ошибка чтения данных в цикле - «должен быть str, а не numpy.int32» - PullRequest
0 голосов
/ 27 сентября 2018

Python 3

Мне нужно построить временной ряд озона с 3 по 10 августа, используя этот веб-сайт данных.Мне нужно "сшить" данные вместе.

http://skywatch.colorado.edu/data/ozone_18_09_03.dat Так что сейчас у меня есть

pre= 'http://skywatch.colorado.edu/data/ozone_18_09_0'

ozone = []
utc = []
dates = np.arange(3,10,1)


for date in dates: 
    url = pre + dates[i] + ".dat"
    lines = urllib.request.urlopen(url).readlines()
    for line in lines: #for x number of times (however many lines appear in the dataset)
        entries = line.decode("utf-8").split("\t")
        if entries[0][0] != ';': #if there are entries that do not have a semicolon 
            utc.append(float(entries[0][0:2]) + \
                   float(entries[0][3:5])/60. + \
                   float(entries[0][6:8])/3600.)
        #converts the UTC time variable into a float and adds it to the list 'utc'
            ozone.append(float(entries[1])) 

Когда я пытаюсь запустить это, я получаю ошибку

----> 9 url = pre + date [i] + ".dat"

TypeError: должно быть str, а не numpy.int32, обратите внимание, обязательно Как справиться с этим

1 Ответ

0 голосов
/ 27 сентября 2018

Я думаю, что вам может понадобиться явно преобразовать объекты numpy.int32 в строки, поскольку numpy, скорее всего, не определил __add__(self, other) для other: str.

Кроме того, вы перебираете dates с переменной date, поэтому вы должны использовать что-то вроде этого:

url = pre + str(date) + ".dat"
...