1. ホーム
  2. パイソン

[解決済み】Pythonのcsv文字列を配列に変換する。

2022-04-08 11:31:16

質問

どなたか、csvエンコードされた文字列をパースして、配列や辞書に変換する簡単なライブラリや関数をご存じないでしょうか?

の内蔵はいらないかな。 csvモジュール なぜなら、私が見たすべての例では、文字列ではなく、ファイルパスを受け取っていたからです。

どのように解決するのですか?

を使用して、文字列をファイルオブジェクトに変換することができます。 io.StringIO に渡し、それを csv モジュールを使用します。

from io import StringIO
import csv

scsv = """text,with,Polish,non-Latin,letters
1,2,3,4,5,6
a,b,c,d,e,f
gęś,zółty,wąż,idzie,wąską,dróżką,
"""

f = StringIO(scsv)
reader = csv.reader(f, delimiter=',')
for row in reader:
    print('\t'.join(row))

を使った簡易版です。 split() を改行する。

reader = csv.reader(scsv.split('\n'), delimiter=',')
for row in reader:
    print('\t'.join(row))

または、単純に split() を使用して、この文字列を行に分割します。 \n をセパレータとして使用し、次に split() を各行の値に変換しますが、この方法はクォートを意識する必要があるので csv モジュールが望ましい。

オン Python 2 をインポートする必要があります。 StringIO かわりに

from StringIO import StringIO

ではなく