How can I create a random number that is cryptographically secure in python?

I'm making a project in python and I would like to create a random number that is cryptographically secure, How can I do that? I have read online that the numbers generated by the regular randomizer are not cryptographically secure, and that the function os.urandom(n) returns me a string, and not a number.

You can get a list of random numbers by just applying ord function over the bytes returned by os.urandom, like this

    >>> import os
    >>> os.urandom(10)
    'm\xd4\x94\x00x7\xbe\x04\xa2R'
    >>> type(os.urandom(10))
    <type 'str'>
    >>> map(ord, os.urandom(10))
    [65, 120, 218, 135, 66, 134, 141, 140, 178, 25]

Quoting os.urandom documentation,

Return a string of n random bytes suitable for cryptographic use.

This function returns random bytes from an OS-specific randomness source. The returned data should be unpredictable enough for cryptographic applications, though its exact quality depends on the OS implementation. On a UNIX-like system this will query /dev/urandom, and on Windows it will use CryptGenRandom().

From: stackoverflow.com/q/20936993