Add "b" prefix to python variable?

PythonPython 3.xByte

Python Problem Overview


Adding the prefix "b" to a string converts it to bytes:

b'example'

But I can't figure out how to do this with a variable. Assuming string = 'example', none of these seem to work:

b(string)
b string
b'' + string

Is there a simple way to do this?

Python Solutions


Solution 1 - Python

# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')

In Python3: > Bytes literals are always prefixed with 'b' or 'B'; they produce an > instance of the bytes type instead of the str type. They may only > contain ASCII characters; bytes with a numeric value of 128 or greater > must be expressed with escapes. >

In Python2:

> A prefix of 'b' or 'B' is ignored in Python 2; it indicates that the > literal should become a bytes literal in Python 3.

More about bytes():

> bytes([source[, encoding[, errors]]]) > > Return a new “bytes” object, which is an immutable sequence of > integers in the range 0 <= x < 256. bytes is an immutable version of > bytearray – it has the same non-mutating methods and the same indexing > and slicing behavior. > > Accordingly, constructor arguments are interpreted as for bytearray(). > > Bytes objects can also be created with literals, see String and Bytes > literals.

Solution 2 - Python

Use bytes():

>>> bytes("hello", encoding="ascii")
b'hello'

Solution 3 - Python

string = bytes(string, encoding= 'utf-8')

where 'string' is your variable.

Solution 4 - Python

Or use the bytes.decode() method to convert to string (using a given encoding):

>>> b'hello'.decode('utf-8')
'hello'

The opposite conversion is str.encode() to convert a string to bytes:

>>> 'hello'.encode('utf-8')
b'hello'

Solution 5 - Python

I have checked for this for long time and i think the best way to convert a string into a varible is using vars()

vars()['variable name'] = value to assign

vars()['created_variable'] = 1
print(created_variable)
>> 1

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionzombioView Question on Stackoverflow
Solution 1 - PythonLeonardo.ZView Answer on Stackoverflow
Solution 2 - PythonTim PietzckerView Answer on Stackoverflow
Solution 3 - Pythona_rView Answer on Stackoverflow
Solution 4 - PythonSimon G.View Answer on Stackoverflow
Solution 5 - PythonsaiasView Answer on Stackoverflow