bytes() doesn't accept a dict as parameter. If you attempt to pass one, you receive a TypeError with the baffling message "'str' object cannot be interpreted as an integer". >> bytes({'a':1}) Traceback (most recent call last): File "", line 1, in TypeError: 'str' object cannot be interpreted as an integer
bytes() accepts: 1. An integer. 2. An object supporting the buffer protocol. 3. An iterable of integers in the range 0 to 255. Dict is an iterable. But iterating it produces string object which cannot be interpreted as an integer.
You can in fact pass a dict to bytes(), as long as the keys are ints in the correct range: >>> bytes({0:10, 1:20}) b'\x00\x01' I'm not claiming it's very useful, but it does conform to the docs. I'm not sure the error message can be improved, so I suggest closing this issue.