5

助けが必要です。アドレスフィールドを含むCSVファイルがあります。元のデータベースにデータを入力した人は誰でも、アドレスのさまざまな部分をカンマで区切ります。たとえば、次のようになります。

フラット5、パークストリート

CSVファイルを使用しようとすると、実際には単一のフィールドであるにもかかわらず、この1つのエントリが2つの別個のフィールドとして扱われます。Pythonを使用して、逆コンマの間にあるコンマを削除しました。これは、実際に存在するはずのコンマと簡単に区別できるためですが、この問題で困惑しました。

どんな助けでもありがたいことに受けられるでしょう。

ありがとう。

4

2 に答える 2

3

PythonのCSVリーダーを使用して、文字の区切りと引用を定義できます。例えば:

このCSVで:

1,`Flat 5, Park Street`

そしてこのPython:

import csv

with open('14144315.csv', 'rb') as csvfile:
    rowreader = csv.reader(csvfile, delimiter=',', quotechar='`')
    for row in rowreader:
        print row

次の出力が表示されます。

['1', 'Flat 5, Park Street']

これは、値を区切るためにコンマを使用しますが、引用符で囲まれたコンマには逆コンマを使用します

于 2013-01-03T17:54:22.840 に答える
1

CSVファイルが正しく生成されませんでした。CSVファイルには、通常は二重引用符を使用して、何らかの形式でテキストをエスケープする必要があります。

1,John Doe,"City, State, Country",12345

一部のCSVエクスポートでは、すべてのフィールドに対してこれが行われます(これは、Excel / LibreOfficeからエクスポートする場合のオプションです)が、あいまいなフィールド(コンマを含むフィールドなど)はエスケープする必要があります。

これを手動で修正するか、CSVを適切に再生成してください。当然、これをプログラムで修正することはできません。

編集:エスケープに「逆コンマ」が使用されていることに気づきました。その場合は、JasonSperskeの回答を参照してください。

于 2013-01-03T17:53:56.873 に答える