私のリストから、正規表現と一致するすべての文字列と、DictReaderに関連付けられたフィールド名のリストを作成する際に問題が発生しました。Dictreaderと正規表現インデックス作成の問題
私は文字列の配列をループし、各文字列がパターンと一致するかどうかを確認しようとしています:文字列がパターンにマッチする
reader = csv.DictReader(file)
for mystr in reader:
for i in range(len(mystr)):
if re.search(pattern, list(mystr.values())[i]):
data.append([list(reader.fieldnames)[i],list(mystr.values())[i]])
は、それがにマッチした文字列とCSVのフィールド名を追加しますリスト。
これはうまくいかないようですが、正しい正規表現の値に予想外のフィールド名を追加することに問題があるようです。
すなわちは、私のデータは
名称、所在地、価格
を命じられた場合は時々、正規表現の条件は価格に関連した数値にフィールド名の場所を追加するかどうか。
[[ 'firstitem']、[ 'seconditem']、[ 'thirditem']、[:そして
結果...値が仲間であるために何ら予測可能なパターンを持っていないようです'[firstitem'、 '1']、['seconditem']、['thirditem'、 '12']、['firstitem'、 '27']、['5thitem'、 '201']] [ 'fourthitem']、[ 'fifthitem']]
など。
番号すべてがちょうど彼ら、正しい順序で表示されます私がパターン/オーダーとして読むことができるものに整列していないので、なぜそれらがややランダムに見えるのかわかりません。どんな助けもありがとう。
ファイルの内容は何ですか?データリストはどのように見えますか? – Billy
また、私はあなたが "文字列の配列をループしている"とは思わない。あなたの '読者の中のmystrのための'ループの 'mystr'はstrではなく、辞書になります。 – Billy
両方の内容がすべての文字列であり、はいそれは辞書です。私はループしており、各要素を正規表現にマッチさせようとしています.csvの内容は基本的に5列の文字列ですが、私は正規表現と日付、価格、時刻形式で一致していますが、現時点では価格と一致しています。標準のint – D3181