Try this,
username = 'abc'
password = 'def'
webhost = '1.2.3.4'
output = subprocess.check_output([f'curl -s -G -u {username}:{password} -k \"https://{webhost}/something/something\"'], shell=True, encoding='utf-8')
It's called an f string. https://docs.python.org/3/tutorial/inputoutput.html
You add an f before the string starts, the you enclose the variables you want to insert in curly braces.
You can pass variables into strings using this syntax.
You can also pass the variables as a list as follow, each argument in the command is a separate item and you can use the f string on the list items you want to parse like this,
username = 'abc'
password = 'def'
webhost = '1.2.3.4'
output = subprocess.check_output(['curl',
'-s',
'-G',
'-u',
f'{username}:{password}',
'-k',
f'\"https://{webhost}/something/something\"'],
encoding = 'utf-8')