我有5个列表,长度相同,我想将它们写入CSV中的5列.到目前为止,我只能使用以下代码将一个写入一列:
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
for val in test_list:
writer.writerow([val])
Run Code Online (Sandbox Code Playgroud)
如果我添加另一个for
循环,它只是将该列表写入同一列.有人知道获得五个独立列的好方法吗?
我正在测试我的run()函数,以确保它具有方法结束时填充的所有正确的东西.我从我们的数据库中填充了4个字段,两个字符串和两个IEnumerable(字符串).我的想法是为我从数据库中提取的所有人打印出来.
当我只打印字符串字段时,一切正常.但是,当我尝试添加Enumerables时,根本没有任何打印.我也打印一个计数器,所以我知道该程序仍在运行和工作.由于空间或其他原因,控制台是否决定不打印任何东西?
这是执行它的代码:
int i = 0;
foreach (Contact contact in Contact.LoadWithPredicate(getAll))
{
-------other code to populate fields---------
i ++;
Console.WriteLine(i);
//Turn the Enumerables into strings for printing
string firstEnumAsString = String.Join(", ", firstEnumerable.ToArray());
string secondEnumAsString = String.Join(", ", secondEnumerable.ToArray());
Console.WriteLine("Email: " + firstString+ ", correspondance: " + secondString+ ", PAM addresses: " + firstEnumAsString+ ", famousPeople: " + secondEnumAsString);
}
Run Code Online (Sandbox Code Playgroud)
所以,作为我的输出,每当我运行上面的代码时,我得到这样的输出:
1
2
Email: foo@bar.com, correspondance: John, PAM addresses: bar@foo.com, famousPeople: foo, bar, foo
3
4
etc
Run Code Online (Sandbox Code Playgroud)
问题是,总共只有两个人(~425)出现,其余的行只是数字.我不应该至少得到字符串"电子邮件"和",通信"?看起来Console似乎决定不做任何事情.而且我知道代码必须到达它,因为它在我调用Console.WriteLine()之前打印出整数.
另一方面,每当我要求打印两个字符串字段时,控制台就会显示所有425个用户的两个字段,就在它们相应的整数之后.有谁知道这里发生了什么?TIA
我是第一次使用DBpedia.我想下载人员数据集中的所有人以及commonName,nationality,birthDate和knownFor的属性(我最终会使用某种脚本语言将其粘贴到excel电子表格中).
这是我第一次尝试查询来完成这项工作,但它不起作用.我尝试将其与我在互联网上看到的其他代码拼凑在一起.有谁知道如何解决这一问题?谢谢
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?person ?commonName ?nationality ?knownFor ? birthDate
WHERE {
?person a type:Person .
?person prop:commonName ?commonNameFilter(lang(?commonName) = 'en') .
?person prop:nationality ?nationality(lang(?nationality) = 'en') .
?person prop:knownFor ?knownFor(lang(?knownFor) = 'en') .
?person prop:birthDate ?birthDate .
}
Run Code Online (Sandbox Code Playgroud)
编辑:新版本的代码:返回共同字符(非英语复制品).仍然缺少其他属性.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/ontology/>
SELECT DISTINCT * WHERE {
?person a dbpedia-owl:Person ;
dbpedia-owl:commonName ?commonName . FILTER(lang(?commonName) = 'en')
}
LIMIT 30
Run Code Online (Sandbox Code Playgroud) 我试图从这个维基百科页面刮掉有生日的人
这是现有的代码:
hdr = {'User-Agent': 'Mozilla/5.0'}
site = "http://en.wikipedia.org/wiki/"+"january"+"_"+"1"
req = urllib2.Request(site,headers=hdr)
page = urllib2.urlopen(req)
soup = BeautifulSoup(page)
print soup
Run Code Online (Sandbox Code Playgroud)
这一切都很好,我得到整个HTML页面,但我想要特定的数据,我不知道如何使用没有id使用的Beautiful Soup访问它.该<ul>
标签没有一个id也不做<li>
标记.另外,我不能只询问每个<li>
标签,因为页面上还有其他列表.是否有特定方式来调用给定列表?(我不能只为这一页使用修复程序,因为我计划迭代所有日期并让每个页面生日,我不能保证每个页面都与此页面完全相同).
python ×2
.net ×1
c# ×1
csv ×1
dbpedia ×1
html-parsing ×1
list ×1
sparql ×1
web-scraping ×1
wikipedia ×1