I'm trying to check the value of extracted data against a csv I already have. It will only loop through the rows of the CSV once, I can only check one value of feed.items(). Is there a value I need to reset somewhere? Is there a better/more efficient way to do this? Thanks.
orig = csv.reader(open("googlel.csv", "rb"), delimiter = ';')
goodrows = []
for feed in gotfeeds:
for link,comments in feed.items():
for row in orig:
print link
if link in row[1]:
row.append(comments)
goodrows.append(row)
If you need to re-read the file, you can either close it and re-open it, or seek() to the beginning, i.e. add ordersFile. seek(0) between your loops. Show activity on this post. The reader object is like a generator, once you have iterate the values, you cannot begin a second loop to read the values again.
There are two common ways to read a . csv file when using Python. The first by using the csv library, and the second by using the pandas library.
Python has a built-in module that allows the code to read, write and parse CSV data into Python code. In this post, we learned to read and write data in the form of a CSV file using Python.
You can "reset" the CSV iterator by resetting the read position of the file object.
data = open("googlel.csv", "rb")
orig = csv.reader(data, delimiter = ';')
goodrows = []
for feed in gotfeeds:
for link,comments in feed.items():
data.seek(0)
for row in orig:
print link
if link in row[1]:
row.append(comments)
goodrows.append(row)
Making orig
a list avoids the need to reset/reparse the csv:
orig = list(csv.reader(open("googlel.csv", "rb"), delimiter = ';'))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With