解析某个表单的列表

2024-03-28 21:06:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个特定格式的列表。你知道吗

[u' ', u'Address :',u'Sadar Bazaar',u'new Delhi,India',u' ',u'Name :',u'Saun-Jean',u' ',u'Occupation :',u'Developer',u'Hacker',u' ']

我想把记录插入数据库。你知道吗

这是我的想法,怎么做。你知道吗

1)取两个u' '之间的所有项目

2)第二项u'Address'定义了数据库的字段,其余的u' '定义了数据。 就像

 'Address :','Sadar Bazaar','new Delhi,India'

3)对所有项目重复此步骤。你知道吗

可能还有其他好主意。你知道吗

但我不知道该怎么做Python。可以吗有人帮我吗??你知道吗

编辑: 下面是我如何构建列表的:

for tr in browser.find_elements_by_xpath("//tbody//tbody//tr"):
 tds=tr.find_elements_by_tag_name('td')
 if tds:
  data.append([td.text for td in tds])

Tags: 项目in数据库列表newfor定义address
3条回答
lis=[u' ', u'Address :',u'Sadar Bazaar',u'new Delhi,India',u' ',u'Name :',u'Saun-Jean',u' ',u'Occupation :',u'Developer',u'Hacker',u' ']
strs=' '.join(str(x).strip() for x in lis if str(x).strip())
lis1=strs.split(':')
dic={}
for i,x in enumerate(lis1[:-1]):
    if x.strip():
        temp_lis=x.strip().split()
        if i+1 <len(lis1)-1:
            dic[temp_lis[-1]]=' '.join(lis1[i+1].split()[:-1])
        else:
            dic[temp_lis[-1]]=' '.join(lis1[i+1].split())

print dic 

输出:

{'Occupation': 'Developer Hacker', 'Name': 'Saun-Jean', 'Address': 'Sadar Bazaar new Delhi,India'}

首先,您必须构造字典,这可以通过执行以下操作来完成(粗略代码):

data = {'Adress' : '',
        'Name' : '',
        'Occupation' : ''}
for item in tds:
    data['Adress'] = item[0]
    data['Name'] = item[1]
    data['Occupation'] = item[2]

当然,这是在tds中的TR总是在同一个位置的情况下。 然后可以使用“数据”字典按名称提取数据

作为一本字典,这样做更好:

d={}
d['Address'] = ['sadar bazaar', ...]
d['Name'] = [ 'saun-jean', ... ]
...

或者作为字典(或类实例)列表:

[ {'Address' : 'sadar bazaar', 'Name': 'saun-jean'}, { ... } ]

要将您的列表转换为我上面提到的词典列表,您可以执行以下操作:

from collections import defaultdict
d = defaultdict(list)
a = iter(yourlist)
key = None
for elem in a:
   if elem == u' ':
      key = next(a)
   else:
      d[key].append(elem)

相关问题 更多 >