2016-10-22 7 views
0

Я использовал xlrd для чтения каждой ячейки из трех столбцов, чтобы сделать три списка. Затем я добавил i-й элемент из всех трех списков в новый список, создав новый список списков.Python remove 'text' из списков, сделанных xlrd

search_terms=[] 
for row in range(0, book.nrows): 
    search_terms.append([med_name[row], med_school[row], mentor[row]]) 
print(*search_terms[0:15], sep='\n') 
[text:'Andrew Burkeland', 'Weill Cornell Medical College', 'Dave Cutler '] 
[text:'Andrew Pence', 'University of Alabama at Birmingham School of Medicine', 'Jack Warran '] 

Есть ли способ вывести «текст:»? Я ввожу каждый список в search_terms в Entrez.egquery для поиска результатов по pubmed, а с текстом: в строке запроса я продолжаю получать 0 результатов.

+0

@anonymous сложением 'ул()' Безразлично» t изменить что-либо, потому что содержимое начинается с начала. –

+0

Проблема заключается в том, что ваш поиск '' 'xlrd''' '' '' '' '' '' ', который возвращает что-то вроде' '' Cell'''. То, что вы хотите, это * значения *, поэтому вам нужно использовать что-то вроде '' 'col_values ​​()' '' или '' 'row_values ​​()' ''. Можете ли вы опубликовать код, который генерирует '' 'book.nrows'''? – Markus

ответ

1

Давайте предположим простую таблицу, которая называется 'students.xlsx'

Student  School  Mentor 
John Doe Harvard Kornberg 
Jane Done Stanford Pauling 

и теперь открыть его с xlrd

import xlrd 
xl_workbook = xlrd.open_workbook('students.xlsx') 
xl_sheet = xl_workbook.sheet_by_index(0) 
row = xl_sheet.row(1) 

Теперь давайте посмотрим на отдельные части

print(row) 

[text:'John Doe', text:'Harvard', text:'Kornberg']

print(row[0]) 

text:'John Doe'

print(row[0].value) 

'John Doe'

Проблема заключается в том, что row[0] является xlrd cell и не строка ш это причина, по которой необходимо получить контент через value.

Теперь давайте сделаем это для всех строк (кроме заголовка):

raw_data = list() 
for row in range(1, xl_sheet.nrows): 
    raw_data.append(xl_sheet.row(row)) 

author_list = list() 
for raw in raw_data: 
    author_list.append(list()) 
    for r in raw: 
     author_list[-1].append(r.value) 
print(author_list) 
> [['John Doe', 'Harvard', 'Kornberg'], ['Jane Done', 'Stanford', 
> 'Pauling']] 

или коротко:

author_list = [[c.value for c in xl_sheet.row(n)] for n in range(1, xl_sheet.nrows)] 
+0

Большое вам спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^