Python JSON

Bonjour @syncope988,

Using open or with open is the same thing, except when you use “with”, it automatically closes.

First Example

  • You use the read() function on “f” and assign the output to the “exemple1” variable. When you use the read() function, you get a string.
  • You then run the reader() function from the CSV module, feed it the “exemple1” variable and assign the output to the “exemple_f” variable.
  • You then iterate over each item in the “exemple_f” variable.

When you check what “row” is, you’ll see it’s a list with only a single character. That’s why you get an index out of range error. There is only one item in the list, that’s why [0] works but not [1] or [2].

Second Example

  • You open the csv_example.csv file and assign the output to variable “f”.
  • You run the reader() function from the CSV module and assign the output to variable “exemple_f”.
  • You iterate over variable “exemple_f”.

This time, you didn’t use the read() function.

By doing it like this, each line in your CSV file becomes a list. That’s why you can use [0], [1], [2], etc. to access the items in your list.

In a nutshell: data and data conversion can be a pain. You can’t always predict what kind of object you get in return…a string, tuple, list, or dictionary. For example, the read() function returns a string but the readlines() function returns a list.

To make your life a lot easier, try to run some Python scripts in visual studio code. When you add a breakpoint, you can visualize what your data looks like:

You can even right-click on what you want to use and choose “copy as expression”:

And use it in your code, or in the debug console:

This makes it much easier compared to using the python interpreter or IDLE where you have to use the print or type function to see things. Give it a try, it will be very helpful :slight_smile:

Doe this explanation help?

Rene