我通过将POST有效负载从网站转换为JSON并在Python中的comments字段中提取值来提取网站中的评论。
JSON看起来像这样:
{
.
.
"comment": "The Quick Brown Fox Jumped Over The Lazy Dog"
.
.
}
当我使用print()
功能打印评论时,评论的打印方式如下:+ Quick + Brown + Fox + Jumped + Over + + Lazy + Dog
评论的类型似乎是“unicode”。我尝试了here和here所提到的所有内容,但这些都没有解决我的问题。
我正在使用python 2.7。现在我打算将其打印用于调试目的,但我想稍后将其存储在数据库中。所以我需要一个永久的解决方案来将unicode转换为字符串。
编辑:我使用var = json.loads(payload_from_POST)
将POST有效负载转换为JSON。然后我通过var ['comment']提取“comment”的值。
答案 0 :(得分:1)
这是将请求字符串解析为适当的字典表示的问题。为此,您可以使用parse_qs
功能。
在Python 2中,
from urlparse import parse_qs
var = parse_qs(payload_from_POST)
print var['comment'][0]
在Python 3中
from urllib.parse import parse_qs
var = parse_qs(payload_from_POST)
print(var['comment'][0])
重要提示:parse_qs
将返回一个JSON,用于将键映射到列表,而不是字符串。因此,为了实际打印“快速的棕色狐狸跳过懒狗”,你必须访问var['comment'][0]
,因为var['comment']
只会返回一个包含一个元素的列表。