os.system
returns the exit code not the data. You should use subprocess instead, see Assign output of os.system to a variable and prevent it from being displayed on the screen.
If you are using python 3.5+, you should use subprocess.run()
import subprocess
import json
import pandas as pd
proc = subprocess.run(["curl", "-X", "GET",
"https://www.receitaws.com.br/v1/cnpj/27865757000102"],
stdout=subprocess.PIPE, encoding='utf-8')
cadastro = proc.stdout
df = pd.DataFrame([json.loads(cadastro)])
Otherwise, use subprocess.Popen()
import subprocess
import json
import pandas as pd
proc = subprocess.Popen(["curl", "-X", "GET",
"https://www.receitaws.com.br/v1/cnpj/27865757000102"],
stdout=subprocess.PIPE)
cadastro, err = proc.communicate()
df = pd.DataFrame([json.loads(cadastro)])
Or, you can use the Requests library.
import json
import requests
import pandas as pd
response = requests.get("https://www.receitaws.com.br/v1/cnpj/27865757000102")
data = json.loads(response.content.decode(response.encoding))
df = pd.DataFrame([data])