1

タブ区切りのスプレッドシートの列名でインデックス付けされた辞書のリストを含む「myjson」という辞書があります。スプレッドシートの各行はディクショナリであり、キーはスプレッドシートの列に対応し、値は特定の行のエントリに対応します。

単純化された例:

{'name':'Sam', 'DoB': 5/23/2000'}
{'name':'Jon', 'DoB': 5/10/2000'}

「列」または「値のセット」という名前にアクセスする必要があります (参照方法がわかりません)。

どうすればいいですか?色々と苦労しました、頑張って

myjson[0].itervalues()すべての値を教えてくれます

しかし、myjson[0][name]うまくいきません...


これに追加:

名前と学位を含む文字列を解析しようとしています。これらの長いリストがあります。学位を含まないもの、学位を含むもの、複数を含むものがあります。

例の文字列:

Sam da Man J.D.
Green Eggs Jr. Ed.M.
Argle Bargle Sr. MA
Cersei Lannister M.A. Ph.D.

私が知る限り、度は次のパターンで来ます。

x.x.
x.x.x.
x.x.xx.
x.xx.
xx.x.
x.xxx.
two caps (ex: 'MA')

これをどのように解析しますか?私は正規表現を読んでいて、 .match() が道かもしれないと思っていますが、一致するパターンのリストを取得する方法がわかりません。

ありがとう!

4

2 に答える 2

3

ディクショナリに string のキーを指定した'name'ので、それを使用してアクセスする必要があります。 myjson[0]['name']あなたが望むものをあなたに与えるべきです。

于 2013-07-01T19:19:02.253 に答える
3

'name'notを使用nameします。引用符がないと、Python は変数を参照していると見なすからですname

リスト内包表記を使用して、そのような値をすべて取得します。

>>> lis = [{'name':'Sam', 'DoB': '5/23/2000'},{'name':'Jon', 'DoB': '5/10/2000'}]
>>> [x['name'] for x in lis]
['Sam', 'Jon']
于 2013-07-01T19:20:07.663 に答える