I am using an API that pulls data about noise levels. When I run my code, I receive a resulting matrix of strings and integers. I want to put them in a table.
Last lines of code
r = requests.get(url, params=params, headers=headers)
json_data = r.json()
print(json_data['result'])
Result:
[{'airports': 0, 'traffictext': 'Active', 'localtext': 'Active', 'airportstext': 'Calm', 'score': 73, 'traffic': 25, 'scoretext': 'Active', 'local': 1}]
I want to convert this to read as a two-column table. I am also working in TouchDesigner. Can anyone help?
I tried reading as a JSON file but it can't read it because it is not double quoted. I tried to call out the specific index to pull out the value that correlates to the string 'airports':0
example:
noise_r = json_data['result']
t = noise_r.index('airports')
I am not familiar at all with python so I am not sure what to really try.
You can loop through the dictionary to create a table. Given that your JSON data is a list, you should loop over it to get each dictionary within it.
Use the dict.items()
method when looping over a dictionary to get each key-value pairs. A typical implementation will be as follows:
data_to_make_table = json_data['result']; # Get the list to iterate over
for dict_in_data in data_to_make_table:
for key, value in dict_in_data.items(): # Iterate over the dictionary
print(key, value)
If you want to store the key-value pairs as a list, you can use the items()
method along with the list()
function:
dict_to_make_table = {"foo": 1, "bar": 2}
result_table = list(dict_to_make_table.items()) # Make the key-value pairs as a list
print(result_table) # [('foo', 1), ('bar', 2)]