python writerow函数写表头_为什么csvwriter.writerow()在每个字符后放一个逗号?

This code opens the url and appends the /names at the end and opens the page and prints the string to 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)

But I get this result:

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

If I change the string to ("JD", "Columbia Law School" ....) then I get

JD, Columbia Law School...)

I couldn't find in the documentation how to specify the delimeter.

If I try to use delimenter I get this error:

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

Thanks for the help.

解决方案

It expects a sequence (eg: a list or tuple) of strings. You're giving it a single string. A string happens to be a sequence of strings too, but it's a sequence of 1 character strings, which isn't what you want.

If you just want one string per row you could do something like this:

csvwriter.writerow([JD])

This wraps JD (a string) with a list.

你可能感兴趣的:(python,writerow函数写表头)