タイトルには私の問題が全く説明されていませんが、ここで紹介します。 Google APIを使用してGmailアカウントからメールを解析しています。各電子メールからいくつかの値を取得する必要があります。電子メール本文は次のように構成されます。Pythonで次のキーに達するまで辞書から値を取得
オブジェクト:何か。
手順:何か。
...
(多くの分野)
...
要求(単一行または複数行であることができる値)
全て取得します私が必要とするフィールドは、私はこれを行う:
for msg in msg_list:
data_dict = OrderedDict()
msg = msg.replace('\r','')
msg = msg.split('\n')
for row in msg:
row = row.split(":")
if row[0] in key_list:
data_dict[row[0]] = row[1]
dict_list.append(data_dict)
return dict_list
私は特定のフィールド 'Reqこれは複数行で、 'msg.split(' \ n ')'を使用することができますので、これを取得します:
"リクエスト:(フィールドの最初の行)"、 "(フィールドの2番目の行)」、 ...
"フィールドの(第n行)" 順序でdictの
値として最初の行のみを進みます。 コンテンツ全体をどのように入手できますか? 私はそれがうまく説明されることを願っています。
ここでは、msg_list
から取らmsg (already splitted)
の形である:
'',
'La pratica Ticketing TSX - 2016-049044 necessita di essere lavorata.',
'',
'Procedura: MATRIX - Enterprise Data Warehouse',
'Oggetto: Mancata esecuzione algoritmo stima reddito (DASTIRED)',
'Perimetro: Specifico',
'Priorit=C3=A0 richiesta: Alta',
'Tipologia Richiesta: Segnalazione Anomalia',
'Sottotipologia Richiesta: Altro',
'',
'Emergenza:',
'',
"Richiesta: Ad oggi l'algoritmo mensile di stima reddito (sequence DASTIRED)",
"non risulta ancora essere stato eseguito. Solitamente l'esecuzione",
'automatica avviene entro i primi 10 giorni del mese dopo che tutte le',
'dipendenze sono state soddisfatte ma attualmente vedo ancora il job nello',
'schedulatore con stato W. Chiedo la cortesia di verificare perch=C3=A9 non =',
'sia',
'ancora stato eseguito (problemi su flussi attesi?) e di provvedere al',
'recupero. Grazie',
'',
'UO Richiedente: INF',
'Autore: UT07080 - SPADINI MATTEO',
'Data richiesta risoluzione:',
'Scadenza SLA : 24/06/2016 14.12.36',
'',
ありがとうございました。
'Request:'フィールドの終わりを決めるのは、文字列の終わり/ファイルの終わり/別の区切り文字/ etcの始まり...? –
@JonClements空白の行 – echo
大丈夫です - それで、空白行が効果的にエントリを区切りますか?つまり、 - ファイル内に複数のレコードがあり、その中からdictsのリストを作成しようとしていますか? (私が正しく理解していれば) –