我遇到了一个问题,即我的脚本写入多个列而不是行。我不确定我做错了什么。
披露 - 我对编程很陌生。
编辑 - 想出来了。这有效: - )
有什么想法吗?
import json
import csv
import subprocess
import urllib
import requests
from unidecode import unidecode
def main():
list_writer= open_csv()
info = test_method()
for list in info:
write_to_csv(list_writer, list)
def test_method():
r = requests.get('https://api.github.com/legacy/repos/search/python'+'?start_page=1', auth=('user', 'pass'))
dict_of_repos = json.loads(r.text)
list_of_repos = dict_of_repos["repositories"]
repo_information = []
for repo in list_of_repos:
indiv_repo = []
indiv_repo.append(repo["name"])
indiv_repo.append(repo["fork"])
print indiv_repo
repo_information.append(indiv_repo)
return repo_information
def open_csv():
github_csv = open('Githubcsv_1_2.csv', 'wb')
writer = csv.writer(github_csv)
return writer
def write_to_csv(list_writer, info):
list_writer.writerow(info)
return
if __name__ == '__main__':
main()
答案 0 :(得分:0)
您的repo_information
看起来像
[
['name'],
['name2'],
['name3']
]
所以看起来你需要的只是writerows
def write_to_csv(list_writer, info):
list_writer.writerows(info)
当然,这会将所有数据写入一列(每个名称都在一个单独的行上)。如果你想把它全部写到同一行,你可以:
for repo in list_of_repos:
repo_information.append(repo['name'])
print repo_information # ['name', 'name2', 'name3']
return repo_information
然后就像你正在做的那样writerow
。然后,这将把所有名称放在同一行。