将列表列表的数据从字符串格式转换为列表

时间:2018-02-07 19:56:18

标签: python string web-scraping beautifulsoup python-requests

我使用来自网站主html源中的辅助网址的美丽汤和python请求获取了一些数据(我认为这就是所谓的动态引用),其形式为.js文件链接。使用美丽的汤我获得了数据(列表清单),但它都是字符串格式,长度约为16000+。它将每个条目,逗号等计为单个条目。虽然后来我能够使用selenium获取所需的数据,但仍然有一种方法可以将我拥有的字符串数据转换为列表。

主网址/网站引用了一个示例辅助网址。 让我们说一下,

http://www.tennisabstract.com/cgi-bin/player.cgi?p=KeiNishikori

当我转到它的HTML代码时,它会引用下面这个文件中的数据。

<script type="text/javascript" 
src="http://www.minorleaguesplits.com/tennisabstract/cgi-
bin/jsmatches/KeiNishikori.js"></script> 

但是当我从这里提取我的数据时(这是我需要的名为matchmx的var),我得到了类似的东西,

[[“20170102”,“布里斯班”,“硬”,“A”,“L”,“5”,“3”,“”,“F”,“6-2 2-6 6-3 “,”3“,”Grigor Dimitrov“,”17“,”7“,”“,”R“,”25.6344969199“,”188“,”BUL“,”0“,”108“,”4“, “0”,“69”,“49”,“36”,“9”,“12”,“2”,“5”,“7”,“2”,“77”,“52”,“41 “,”12“,”13“,”5“,”7“,”1“,”20170107-M-Brisbane-F-Grigor_Dimitrov-Kei_Nishikori.html“,”“,”“,”2017-M020-300 “,”“,”“,”“,”,

[“20170102”,“布里斯班”,“硬”,“A”,“W”,“5”,“3”,“”,“QF”,“6-1 6-1”,“3 “,”Jordan Thompson“,”79“,”“,”WC“,”R“,”22.7049965777“,”“,”AUS“,”0“,”61“,”3“,”0“,” 34“,”19“,”18“,”10“,”7“,”0“,”0“,”1“,”2“,”47“,”28“,”15“,”5“ ,“7”,“3”,“8”,“2”,“”,“”,“”,“2017-M020-295”,“”,“3”,“2”],.... 。 等等,但所有作为单独的字符串给我一些像1000年代的长度。如何将其转换为最好的列表列表或如何使用它,以便最终我可以将其加载到数据帧

1 个答案:

答案 0 :(得分:1)

您好,请尝试以下代码

import ast
p='[["abcd","abcd"],["abcd","abcd"]]'
print ast.literal_eval(p) #[["abcd","abcd"],["abcd","abcd"]]
print type(ast.literal_eval(p)) #list

参考post