I think this is a problem with the bytes object being a string in the 2.7 and being a bytes object in 3.x. Anvil’s documentation for this is still geared towards python 2.7 and so I don’t think it is particularly well documented…
try using: csv_string_QIS = response.get_bytes().decode()
in short - when you need a string object from bytes in python 3 use bytes_object.decode()
and when you need a bytes object from string use str_object.encode()