使用Python 3时urllib错误

时间:2017-09-29 10:39:06

标签: python python-3.x urllib

每当我在Python 3中运行以下代码时,我都会收到语法错误invalid syntax。我假设的原因是因为python 3中的print具有不同的语法。

import sys
from urllib.request import urlopen
from urllib.request import Request
import json

request = Request(
    "https://gcm-http.googleapis.com/gcm/send",
    dataAsJSON,
    { "Authorization" : "key="+MY_API_KEY,
      "Content-type" : "application/json"
    }
)

print urlopen(request).read()

但是,当我将最后一行更改为

result = urlopen(request).read()

我收到以下错误:

  

TypeError:POST数据应该是字节,可迭代的字节或文件   宾语。它不能是str类型。

1 个答案:

答案 0 :(得分:3)

在创建request对象之前将数据转换为字节字符串。

dataAsJSON = dataAsJSON.encode()