2016-11-12 75 views
0

我正在从我自己的Facebook个人资料中抓取数据,并在尝试将数据插入sqlite3数据库时陷入困境。Python 3 |将复杂列表数据转换为列表中的分组?

我已经抓住了我的朋友列表,并将结果组织成一个python列表,但python列表很混乱,至少可以说。

我会告诉你我是什么意思:

['Jody Ann Elizabeth Lill\n98 mutual friends\nFriends\nGeorgia Gee Smith\n60 mutual friends\nFriends\nShannon Kirk\n52 mutual friends\nFriends\nNatasha Byars-Marsden\n4 mutual friends\nFriends\nLorrae Moakes\n36 mutual friends\nFriends\nAdam AP Kirk\n98 mutual friends\n7 new posts\nFriends\nLittle Mark Jr.\n5 mutual friends\nFriends\nMark Duffy\nFriends with Nat Hodgson\nFriends\nEdward McConville\n40 mutual friends\n3 new posts\nFriends', 'Tanisha Barlow\n2 mutual friends\n10 new posts\nFriends\nCatherine Firth\n4 mutual friends\nFriends\nJayde Woods\n56 mutual friends\n4 new posts\nFriends\nScott Goodall\n43 mutual friends\n4 new posts\nFriends\nNikki Harris\n43 mutual friends\n4 new posts\nFriends\nDebbie Goodall\n85 mutual friends\n6 new posts\nFriends\nConrick Junior\n48 mutual friends\n1 new post\nFriends\nBoris Bighead\n5 mutual friends\nFriends'] 

只有两个在上面的列表中的项目!但我需要他们组织到正确的组,所以我需要:

['Jody Ann Elizabeth Lill\n98 mutual friends\nFriends\n', 'Georgia Gee Smith\n60 mutual friends\nFriends\n', 'Shannon Kirk\n52 mutual friends\nFriends\n', 'Natasha Byars-Marsden\n4 mutual friends\nFriends\n', 'Lorrae Moakes\n36 mutual friends\nFriends\n', 'Adam AP Kirk\n98 mutual friends\n7 new posts\nFriends\n', 'Little Mark Jr.\n5 mutual friends\nFriends\n', 'Mark Duffy\nFriends with Nat Hodgson\nFriends\n', 'Edward McConville\n40 mutual friends\n3 new posts\nFriends', 'Tanisha Barlow\n2 mutual friends\n10 new posts\nFriends\n', 'Catherine Firth\n4 mutual friends\nFriends\n', 'Jayde Woods\n56 mutual friends\n4 new posts\nFriends\n', 'Scott Goodall\n43 mutual friends\n4 new posts\nFriends\n', 'Nikki Harris\n43 mutual friends\n4 new posts\nFriends\n', 'Debbie Goodall\n85 mutual friends\n6 new posts\nFriends\n', 'Conrick Junior\n48 mutual friends\n1 new post\nFriends\n', 'Boris Bighead\n5 mutual friends\nFriends'] 

正如你可以看到每个分组不具有相等数量的项目:

(这在其组3项)

'Jody Ann Elizabeth Lill\n98 mutual friends\nFriends\n', 

(尽管这在其组4项)

'Conrick Junior\n48 mutual friends\n1 new post\nFriends\n', 

我确实想过创建一个元组列表,但是由于组中的项目数量不平衡,我认为这肯定会失败。

给你一个我真正想要作为最终结果的想法;

我需要我的名单组织像这样:

[ ('Jody Ann Elizabeth Lill', '98 mutual friends', 'Friends'), 
'Georgia Gee Smith', '60 mutual friends', 'Friends', 
'Conrick Junior', '48 mutual friends', '1 new post,' 'Friends', 
'Shannon Kirk', '52 mutual friends', 'Friends' ] 

然后我想在它们之间迭代,并把它们插入到一个DATABSE表所示:

+---------------------------------+-----------------+--------------------------+------------------------+---------+ 
|  name       | new_posts | mutual_friends | already_friends |id   | 
+---------------------------------+-----------------+--------------------------+------------------------+---------+ 
|Jody Ann Elizabeth Lill |      |98 mutual friends| Friends     |1   | 
+---------------------------------+-----------------+--------------------------+------------------------+---------+ 
|Georgia Gee Smith  |      |60 mutual friends | Friends     |2   | 
+---------------------------------+-----------------+--------------------------+------------------------+---------+ 
|Adam AP Kirk     |7 new posts|98 mutual friends | Friends    |3   | 
+---------------------------------+-----------------+--------------------------+------------------------+---------+ 

我如何转换我的列表,以便那我可以继续将有组织的列表用于数据库?

回答

0

当你从你的朋友列表中删除时,你会在每种情况下共同使用'\ nFriends'字符串。我能想到的最简单方法,是应用以下几点:

friends_str = 'Jody Ann Elizabeth Lill\n98 mutual friends\nFriends\nGeorgia Gee Smith\n60 mutual friends\nFriends\nShannon Kirk\n52 mutual friends\nFriends\nNatasha Byars-Marsden\n4 mutual friends\nFriends\nLorrae Moakes\n36 mutual friends\nFriends' 
friends_array = friends_str.split('\nFriends') 
for friend in friends_array: 
    columns = (friend+'\nFriends').split('\n') 
    add_to_db(columns) 

希望是对您有用。

+0

嘿我现在会试试这个,谢谢 – Jackherer

+0

它适用于正确分割它们,但没有wI有试图将不同大小的组放在数据库中的问题,因为有些是3列,有些是4列,Igues I将不得不按照它们各自的列数对它们进行排序。 – Jackherer