0

我需要一个正则表达式来从以下数据结构中提取花絮。此数据位于 javascript 变量中。我正在使用 BeautifulSoup 和 Mechanize 来发出请求并解析页面,但我不知道如何在没有正则表达式的情况下获得我需要的东西。更多细节如下。

原始数据:

var d = [[909.0546875,842.3125,32429,'TownID: 32429','GREY','circle_grey.png',970,'goldpimp\'s city','','N/A'],[1434.8890625,1365.41484375,32143,'TownID: 32143','GREY','circle_grey.png',899,'1..','','N/A'],[1553.92265625,1117.43046875,32326,'TownID: 32326','GREY','circle_grey.png',522,'Avacyns Pantheon','','N/A'],[1305.17265625,1328.6421875,28927,'TownID: 28927','GREY','circle_grey.png',3554,'Furiocity','','N/A'],...(cont.)

例如,在第一行我需要拉TownID: 32429, 970, 和goldpimp\'s city

我需要对整个数据结构执行此操作以获取每个 townID 和相关信息。很抱歉这个新手问题,但正则表达式真的让我绞尽脑汁。

4

1 回答 1

2

d是一个列表,您可以通过索引访问列表。那么,为什么是正则表达式?你不需要它。为了得到你的结果:

for city in d:
  print "%s %s %s" % (city[3], city[6], city[7])

print语句在控制台中打印文本。每个%s都将(按顺序)替换为正确组中的字符串(第一个%s替换为city[3],第二个替换为 ,city[6]第三个替换为city[7])。

编辑

好的,如果d来自 Javascript 源,您需要使用 将其转换为 Python 数据json.loads,将其结果存储在变量中并使用较早的方法访问(有关 Pythonjson模块的信息,请参见此处的 2.7 和此处的 3.3)。

于 2013-10-17T13:21:18.317 回答