suchen

Heim  >  Fragen und Antworten  >  Hauptteil

如何让base64在python2和python3都运行通过

1

2

3

4

5

args = [1,2,3,4]

text = json.dumps(args)

query = base64.b64encode(text)

auth = hashlib.md5(query).hexdigest()

print(auth)

这段代码在python2.7下面通过,但是python3.5会报错:
TypeError: 'str' does not support the buffer interface

更改为这样以后,python3可以通过了

1

2

3

4

5

args = [1,2,3,4]

text = json.dumps(args)

query = base64.b64encode(bytes(text, 'utf-8'), )

auth = hashlib.md5(query).hexdigest()

print(auth)

但是python2又会报错:TypeError: str() takes at most 1 argument (2 given)

该怎样修改才能使代码在python2和python3都运行通过呢?


高洛峰高洛峰3046 Tage vor862

Antworte allen(2)Ich werde antworten

  • 代言

    代言2016-11-09 14:10:41

    1

    2

    3

    4

    5

    6

    7

    8

    9

    args = [1,2,3,4]

    text = json.dumps(args)

     

    #这里添加了一个bytearray类型的变量temp

    temp = bytearray(text, encoding='ascii')

     

    query = base64.b64encode(temp)

    auth = hashlib.md5(query).hexdigest()

    print(auth)


    Antwort
    0
  • 三叔

    三叔2016-11-09 14:10:28

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    import base64, json, hashlib

     

    args = [1,2,3,4]

    text = json.dumps(args)

    try:

        text = bytes(text, 'utf-8')

    except:

        pass

    query = base64.b64encode(text)

    auth = hashlib.md5(query).hexdigest()

    print(auth)


    Antwort
    0
  • StornierenAntwort