小编Ale*_*ley的帖子

将Python列表写入csv中的列

我有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循环,它只是将该列表写入同一列.有人知道获得五个独立列的好方法吗?

python csv list

33
推荐指数
4
解决办法
9万
查看次数

Console.Write是否会失败?

我正在测试我的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

.net c# console.writeline visual-studio

5
推荐指数
1
解决办法
289
查看次数

使用DBPedia加载所有People以及一些数据

我是第一次使用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)

wikipedia sparql dbpedia

4
推荐指数
1
解决办法
3258
查看次数

美丽的汤:从<ul>访问<li>元素,没有id

我试图从这个维基百科页面刮掉有生日的人

这是现有的代码:

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 beautifulsoup html-parsing web-scraping

1
推荐指数
2
解决办法
1万
查看次数