Your response.text is a JSON string, and writing it literally to a “csv” file won’t turn it into CSV format.
CSV is a column/row-oriented format, so it's completely different from JSON - a CSV often (but optionally) starts with a line called the header row which lists the name for each column separated by comma, then subsequent lines one per row with the value for each column separated by comma - there are as many columns in each line/row as specified in the header. It's possible to use a different separator than comma, such as tab, or semi-colon, but the principle is the same - when importing you need to specify the separator if it's not comma. The CSV format allows values to contain the separator or a newline by quoting them usually using " and also to contain " by double-quoting it. CSV is an ad-hoc "standard" which works pretty well. In Python the library includes a module called csv which understands the complexities and does the detailed work for you.
So you should use the csv module because it handles the details.
You need code something like this, although you will use response.json which for your response is a Python list of dictionaries, i.e. it's been converted from JSON string into Python things. The code below hardcodes the response string and turns this into the equivalent of response.json using json.loads into variable responsejson. The header row is also hardcoded, but you could work this out dynamically by scanning all the rows and working out the header from thje dictionary keys.
import json
import csv
# this is a hardcoding of your response.text
responsetext = """[
{
"name": "Josh",
"city": "New York",
"Height": "5'9"
},
{
"name": "Katty",
"city": "Los Angeles",
"Height": "5'6"
}
]
"""
# this converts that text into a Python list - you don't need to do this, you should use response.json
responsejson = json.loads(responsetext)
with open('response.csv', 'w', newline='') as csvfile:
fieldnames = ['name', 'city', 'Height']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in responsejson:
writer.writerow(row)
Result:
name,city,Height
Josh,New York,5'9
Katty,Los Angeles,5'6
This csv file will open in a spreadsheet program the way you might expect:

Documentation for csv is here https://docs.python.org/3/library/csv.html