0

この特定の形式のリストがあります。

[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) 2 つの間のすべてのアイテムを取るu' '

2) 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])
4

4 に答える 4

1
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'}
于 2012-08-21T18:06:55.250 に答える
1

これは、辞書として行う方がはるかに優れています。

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)
于 2012-08-21T17:45:45.170 に答える
0

最初に辞書を作成する必要があります。これは、次のようなことを行うことで実行できます(大まかなコード):

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

もちろん、これは tds の trs が常に同じ場所にある場合です。そして、「データ」ディクショナリを使用して、名前でデータを取得できます

于 2012-08-21T18:04:34.923 に答える