Reputation: 203
I would like to generate a csv something like below but my python code generating .cvs file like this -
names
delectus aut autem,quis ut nam facilis et officia qui,fugiat veniam minus,et porro tempora
I would like to print each name in a separate row, please find my python code below
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)
Expected output -data.csv
names
delectus aut autem
quis ut nam facilis et officia qui
fugiat veniam minus
et porro tempora
Upvotes: 0
Views: 1158
Reputation: 318
Method 1 (Using 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)
Method 2 (Using pandas)
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)
Output in csv file
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
--- Edit ---
Added method 2, which uses pandas library.
Upvotes: 1
Reputation: 54733
That's not a CSV file. That's just a plain text file.
with open('data.txt','w') as f:
print(fields, file=f)
print('\n'.join(rows), file=f)
Upvotes: 0