У меня есть этот вывод кода Python, который я хочу экспортировать как файл .csv в Python? - PullRequest
0 голосов
/ 03 октября 2018

Следующий код не выводит никаких данных, кроме: col1 [none] в моем файле .csv.Хотя ошибок нет.

Я надеюсь получить один столбец с примерно 50 строками текстовых строк.Спасибо за любую помощь заранее.Если есть возможность поместить имя, workab и abstract в отдельные столбцы, это также очень поможет.

def output():
    headernum = 0
    i = 0
    x = soup.find_all("h1")
    for i in range(len(x)):
        header = soup.find_all('h1')[headernum]
        name = header.find_all_next('p')[1]
        nameab = name.text
        #print(nameab.replace("\n",""))
        workplace = name.find_all_next('i')[0]
        workplace2 = name.find_all_next('i')[1]
        workab = workplace.text + workplace2.text
        #print(workab.replace("\n",""))
        abstract = []
        for elem in name.next_siblings:
            if elem.name == 'h1':
                break
            if elem.name != 'p':
                continue
            abstract.append(elem.get_text())
        a = "**".join(abstract).replace("\n", " ").encode('utf-8')
        i += 1
        headernum += 1

def output2():
    x = soup.find_all("h1")
    l = []
    for i in range(1):
        l.append(output())

def fileOut():
    myData = ['Col1',[output2()]]
    myFile = open('test.csv', 'w')
    with myFile:
       writer = csv.writer(myFile)
       writer.writerows([myData])
       myFile.close()

fileOut()

1 Ответ

0 голосов
/ 03 октября 2018

Кажется, что вы вызываете output () внутри output2 (), но ваша функция output () не имеет возвращаемых значений.

def output2():
    x = soup.find_all("h1")
    l = []
    for i in range(1):
        l.append(output())

Кроме того, ваша функция output2 () не возвращаетвсе, что угодно, поэтому myData = ['Col1',[output2()]] дает вам col1 [none].

...