TypeError: byte indices must be integers or slices, not str

Viewed 47184
request = requests.get("http://api.roblox.com/Marketplace/ProductInfo?assetId=1834225941").content
print(str(request["Sales"]))

this gives the following error:

Traceback (most recent call last):
  File "C:\Users\yorks\Desktop\BloxUtility\bot.py", line 22, in <module>
    print(int(request["Sales"]))
TypeError: byte indices must be integers or slices, not str

Can you help me out?

3 Answers

This should work

import requests
import json
request = requests.get("http://api.roblox.com/Marketplace/ProductInfo?assetId=1834225941").text
a = json.loads(request)
print(a['Sales'])

You can read up on deserializing here

I hope it can help you...

import json
import requests

response = requests.get("your_api_url")
if (response.status_code != 200):
    print("API is not working. status code :" + str(response.status_code))
else:
    print("API is working. status code :" + str(response.status_code))
    datas = json.loads(response.text)
    for value in datas['data']:
        print(value)
        #print(values['column_name'])

as the content of the response is in JSON format, you should be able to access it with:

res = requests.get("http://api.roblox.com/Marketplace/ProductInfo?assetId=1834225941")
print(res.json()['Sales'])
Related