В Python, как разбить список строк в список списка строк? - PullRequest
0 голосов
/ 27 марта 2012

Я использую сервер со сценариями cherrypy и python.В настоящее время есть веб-страница, содержащая данные списка людей, которые мне нужно получить.Формат веб-страницы следующий:

www.url1.com, firstName_1, lastName_1
www.url2.com, firstName_2, lastName_2
www.url3.com, firstName_3, lastName_3 

Я хочу отобразить список имен на своей собственной веб-странице, где каждое имя связано с соответствующим веб-сайтом.

Я прочиталвеб-страницу в список с помощью следующего метода:

@cherrypy.expose
    def receiveData(self):
        """ Get a list, one per line, of currently known online addresses,
            separated by commas.
        """

        method = "whoonline"
        fptr = urllib2.urlopen("%s/%s" % (masterServer, method))
        data = fptr.readlines()
        fptr.close()

        return data

Но я не знаю, как разбить список на список списков, где запятая.Результат должен дать каждому меньшему списку три элемента;URL, имя и фамилия.Поэтому мне было интересно, может ли кто-нибудь помочь.

Заранее спасибо!

Ответы [ 4 ]

3 голосов
/ 27 марта 2012

Вы можете перебрать fptr, не нужно вызывать readlines()

data = [line.split(', ') for line in fptr]
2 голосов
/ 27 марта 2012

Вам необходим метод split(',') для каждой строки:

data = [ line.split(',') for line in fptr.readlines() ]
0 голосов
/ 29 марта 2012

Если ваши данные представляют собой большую строку (возможно, с начальным или конечным пробелами), сделайте это следующим образом:

lines="""    www.url1.com, firstName_1, lastName_1
www.url2.com, firstName_2     , lastName_2   
www.url3.com, firstName_3, lastName_3           """

data=[]
for line in lines.split('\n'):
    t=[e.strip() for e in line.split(',')]
    data.append(t)

print data    

Из:

[['www.url1.com', 'firstName_1', 'lastName_1'], ['www.url2.com', 'firstName_2', 
  'lastName_2'], ['www.url3.com', 'firstName_3', 'lastName_3']]

Обратите внимание, что передние и задние пробелы удалены.

0 голосов
/ 27 марта 2012
lists = []
for line in data:
   lists.append([x.strip() for x in line.split(',')])
...