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...)
구분 기호를 지정하는 방법을 설명서에서 찾을 수 없습니다.
사용하려고 delimenter
하면이 오류가 발생합니다.
TypeError: 'delimeter' is an invalid keyword argument for this function
도와 주셔서 감사합니다.
문자열의 시퀀스 (예 : 목록 또는 튜플)를 예상합니다. 단일 문자열을 제공합니다. 문자열은 문자열의 시퀀스이기도하지만 원하는 것이 아닌 1 개의 문자열로 구성된 시퀀스입니다.
행당 하나의 문자열 만 원하면 다음과 같이 할 수 있습니다.
csvwriter.writerow([JD])
이것은 JD (문자열)를 목록으로 감싼다.
csv.writer 클래스는 writerow에 대한 인수로 iterable을 사용합니다. Python의 문자열은 문자별로 반복 가능하므로 writerow에 허용되는 인수이지만 위의 출력을 얻습니다.
이를 수정하기 위해 공백을 기준으로 값을 분할 할 수 있습니다 (원하는 것으로 가정합니다).
csvwriter.writerow(JD.split())
이것은 MatchObject 인스턴스의 group () 메서드가 단일 값만 반환 할 때 문자열로 반환하기 때문에 발생합니다. 값이 여러 개인 경우 문자열 튜플로 반환됩니다.
행을 작성하는 경우 csv.writer는 전달하는 객체를 반복합니다. 단일 문자열 (반복 가능)을 전달하면 문자를 반복하여 관찰중인 결과를 생성합니다. 문자열의 튜플을 전달하면 모든 반복에서 단일 문자가 아닌 실제 문자열을 가져옵니다.
'programing tip' 카테고리의 다른 글
오류가 발생하면 using 문이 데이터베이스 트랜잭션을 롤백합니까? (0) | 2020.10.08 |
---|---|
codeigniter 웹 사이트를 다국어로 만드는 가장 좋은 방법입니다. (0) | 2020.10.08 |
완전한 Django URL 구성 결정 (0) | 2020.10.08 |
오류 / langversion에 대한 잘못된 옵션 '6'; (0) | 2020.10.08 |
커서 위치를 잃지 않고 입력 값 업데이트 (0) | 2020.10.08 |