問題は、あなたが文字列にappend
しようとしているです。文字列には関数append
はありません。これはリスト関数です。 write_to
が文字列であると仮定すると、以下のいずれかの方法を使用して文字列を連結できます。
あなたは、単純な連結を使用して文字列に連結することができます:
write_to += u_name.text
別のオプションは、文字列関数join
を使用することです。これは次のようになります。
write_to = "".join([write_to, u_name.text])
結合がより効率的であると報告されます。結合を使用:
w = open("C:\\Users\\kp\\Desktop\\example.csv", "w+")
writer = csv.writer(w)
write_list = []
for com in soup.find_all("div", {"class" : "commentlist first jsUserAction"}):
for com1 in com.find_all("div", {"class" : "text"}):
for com2 in com1.find_all("div" , {"class" : "user-review"}):
u_name = com2.find("div", {"class" : "_reviewUserName"})
u_rev = com2.find("p")
print(u_name.text)
print(u_rev.text)
write_list.append(u_name.text)
write_list.append(u_rev.text)
write_to = "".join(write_list);
writer.write(write_to)
あなたは間違ってcsvライターを使用しているようですが、あなたは各行の2カンマ区切り持っていると仮定:u_name.text
とu_rev.text
を、あなたは次のようにwriterow
を使用してファイルに書き込むことができます。
w = open("C:\\Users\\kp\\Desktop\\example.csv", "w+")
try:
writer = csv.writer(w)
for com in soup.find_all("div", {"class" : "commentlist first jsUserAction"}):
for com1 in com.find_all("div", {"class" : "text"}):
for com2 in com1.find_all("div" , {"class" : "user-review"}):
u_name = com2.find("div", {"class" : "_reviewUserName"})
u_rev = com2.find("p")
print(u_name.text)
print(u_rev.text)
writer.write_row((u_name.text, u_rev.text))
finally:
w.close()
はここで連結した文字列の異なる方法およびそれらの相対的な効率性について語ったリンクです。 https://waymoot.org/home/python_string/
'write_to'は' list'ではなく 'str'です。 –
'write_to'変数はあなたが投稿したコードのどこにでも宣言されていません。それがリストであることを確認してください – Guillaume
また、投稿したコードのインデントを確認してください – Guillaume