'Converting CSV into Array in Python

I have a csv file like below. A small csv file and I have uploaded it here

enter image description here

I am trying to convert csv values into array.

My expectation output like

enter image description here

My solution

results = []
with open("Solutions10.csv") as csvfile:
    reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC) # change contents to floats
    for row in reader: # each row is a list
        results.append(row)

but I am getting a

ValueError: could not convert string to float: ' [1'



Solution 1:[1]

There is a problem with your CSV. It's just not csv (coma separated values). To do this you need some cleaning:

import re

# if you expect only integers
pattern = re.compile(r'\d+')
# if you expect floats (uncomment below)
# pattern = re.compile(r'\d+\.*\d*')
result = []
with open(filepath) as csvfile:
    for row in csvfile:
        result.append([
            int(val.group(0))
            # float(val.group(0))
            for val in re.finditer(pattern, row)
        ])
        
print(result)

You can also solve this with substrings if it's easier for you and you know the format exactly.

Note: Also I see there is "eval" suggestion. Please, be careful with it as you can get into a lot of trouble if you scan unknown/not trusted files...

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Alexander B.