【问题标题】:How to print list value as each row in csv using python?如何使用python将列表值打印为csv中的每一行?
【发布时间】:2021-07-11 07:00:33
【问题描述】:

我想生成一个类似下面的 csv,但我的 python 代码生成这样的 .cvs 文件 -

names
delectus aut autem,quis ut nam facilis et officia qui,fugiat veniam minus,et porro tempora

我想在单独的行中打印每个名称,请在下面找到我的 python 代码

test.py

import requests
import csv
my_list = []
for i in range(1, 10):
    
    url = 'https://jsonplaceholder.typicode.com/todos/'+str(i)
    response = requests.get(url)
    jsonResponse = response.json()
    my_list.append(jsonResponse['title'])


print(my_list)

fields = ['names'] 
    
# data rows of csv file 
rows = [my_list]
  
with open('data.csv', 'w') as f:
    write = csv.writer(f)
    write.writerow(fields)
    write.writerows(rows)

预期输出 -data.csv

names
delectus aut autem 
quis ut nam facilis et officia qui 
fugiat veniam minus 
et porro tempora

【问题讨论】:

    标签: python csv


    【解决方案1】:

    方法 1(使用 CSV)

    import requests
    import csv
    
    writer=csv.writer(open('data.csv','w'))
    
    fields = ['names'] 
    writer.writerow(fields)
    
    my_list = []
    for i in range(1, 10):
        url = 'https://jsonplaceholder.typicode.com/todos/'+str(i)
        response = requests.get(url)
        jsonResponse = response.json()
        my_list.append(jsonResponse['title'])
        writer.writerow([jsonResponse['title']])
    
    
    print(my_list)
    

    方法二(使用熊猫)

    import requests
    import pandas as pd
    
    my_list = []
    for i in range(1, 10):
        url = 'https://jsonplaceholder.typicode.com/todos/'+str(i)
        response = requests.get(url)
        jsonResponse = response.json()
        my_list.append(jsonResponse['title'])
    
    print(my_list)
    
    df = pd.DataFrame({'names': my_list})
    df.to_csv('data.csv', index=False)
    

    在 csv 文件中输出

    names
    delectus aut autem
    quis ut nam facilis et officia qui
    fugiat veniam minus
    et porro tempora
    laboriosam mollitia et enim quasi adipisci quia provident illum
    qui ullam ratione quibusdam voluptatem quia omnis
    illo expedita consequatur quia in
    quo adipisci enim quam ut ab
    molestiae perspiciatis ipsa
    

    --- 编辑 ---

    添加了使用 pandas 库的方法 2。

    【讨论】:

    • 谢谢,这看起来不错。在这种方法中,我们在 for 循环中写入 csv 文件,是否有任何替代方法可以一次性将所有 10 条记录写入 csv 文件,因为我必须将 200 多个数据写入 csv 文件而我没有想在for循环中进行文件操作。在此提前感谢您的帮助!
    • @DaveBrady 方法 2 应该可以解决您的问题。
    【解决方案2】:

    这不是 CSV 文件。这只是一个纯文本文件。

    with open('data.txt','w') as f:
        print(fields, file=f)
        print('\n'.join(rows), file=f)
    

    【讨论】:

      猜你喜欢
      • 2022-07-07
      • 1970-01-01
      • 2015-12-21
      • 2019-11-09
      • 2017-07-01
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多