The problem that prevents your code from accessing the if loop if row['Role']==[]
is because you're trying to find empty elements the wrong way.
try this instead:
Method 1:
with open('oneOrganization.csv','r') as file:
reader = csv.DictReader(file,delimiter=',')
my_list = list(reader)
for row in reader:
if row['test1'] in (None,''): # to check if cell is empty
row_dict['Role'] = "User"
else:
row_dict['Role'] = row["role"]
Method 2: provided by @Jean-François Fabre
with open('oneOrganization.csv','r') as file:
reader = csv.DictReader(file,delimiter=',')
for row in reader:
if not row['test1']:
row_dict['Role'] = "User"
else:
row_dict['Role'] = row["role"]
Method 3 : "elegant one liner" - by @Jean-François Fabre
with open('oneOrganization.csv','r') as file:
reader = csv.DictReader(file,delimiter=',')
for row in reader:
row_dict['Role'] = row["role"] or "User"
I tried it on a csv example that can be represented like this: (np.array form)
[['test1' 'test2' 'test3']
[ 1 2 3 ]
[ 11 22 33 ]
[ 222 333]]
and used this code:
import csv
with open('test_csv.csv','r') as file:
reader = csv.DictReader(file,delimiter=',')
for row in reader:
if row['test1'] in (None,''):
print('no')
else:
print(row['test1'])
or with method 2:
import csv
with open('test_csv.csv','r') as file:
reader = csv.DictReader(file,delimiter=',')
for row in reader:
if not row['test1']:
print('no')
else:
print(row['test1'])
or method 3
import csv
with open('test_csv.csv','r') as file:
reader = csv.DictReader(file,delimiter=',')
for row in reader:
print(row['test1'] or 'no')
output:
1
11
no
you can refer to this topic for more informations about how to check if a "cell" is empty in a csv file.