csvwriter.writerow() が各文字の後にカンマを置くのはなぜですか? 質問する

csvwriter.writerow() が各文字の後にカンマを置くのはなぜですか? 質問する

このコードは URL を開き、/names末尾に を追加してページを開き、文字列を に出力しますtest1.csv

import urllib2
import re
import csv

url = ("http://www.example.com")
bios = [u'/name1', u'/name2', u'/name3']
csvwriter = csv.writer(open("/test1.csv", "a"))

for l in bios:
    OpenThisLink = url + l
    response = urllib2.urlopen(OpenThisLink)
    html = response.read()
    item = re.search('(JD)(.*?)(\d+)', html)
    if item:
        JD = item.group()
        csvwriter.writerow(JD)
    else:
        NoJD = "NoJD"
        csvwriter.writerow(NoJD)

しかし、次のような結果が得られました:

J,D,",", ,C,o,l,u,m,b,i,a, ,L,a,w, ,S,c,h,o,o,l,....

文字列を("JD", "Columbia Law School" ....)に変更すると、次のようになります。

JD, Columbia Law School...)

ドキュメントで区切り文字を指定する方法が見つかりませんでした。

使用しようとすると、delimeter次のエラーが発生します:

TypeError: 'delimeter' is an invalid keyword argument for this function

ベストアンサー1

文字列のシーケンス (例: リストまたはタプル) が必要です。単一の文字列を指定しています。文字列は文字列のシーケンスでもありますが、1 文字の文字列のシーケンスであり、これは必要なものではありません。

行ごとに 1 つの文字列だけが必要な場合は、次のようにします。

csvwriter.writerow([JD])

これは JD (文字列) をリストでラップします。

おすすめ記事