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

标签 python string web-scraping beautifulsoup python-requests

我使用漂亮的 soup 和 python 请求从网站的主要 html 源中的辅助 url 获取了一些数据(我认为这就是所谓的动态引用),其形式为 .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 的变量),我得到了这样的东西,

[["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 ", "乔丹汤普森", "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。如何将它最多转换为列表列表或如何使用它以便最终我可以将它加载到数据框

最佳答案

你好试试下面的代码

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

引用post

关于python - 将列表列表的数据从字符串格式转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672245/

相关文章:

c# - System.Windows.Forms.WebBrowser 等待页面完全加载

windows - 下载点击后生成的文件,带有碎片

python - 尝试从文本文件打印简单列表时出现 'output not utf-8' 错误

python - Python 中的概率分布函数

c# - 使用混合语言(LTR + RTL)重新排列字符串?

java - 从字符串中提取数字

python - __author__ 的由来是什么?

python - 在 [ :index] 上使用动态索引列出切片

python - 将字符串向左旋转 n 个字符,特殊字符除外

java - 如何在 Android 中执行网页抓取?