3 回答

TA贡献1868条经验 获得超4个赞
[u'ABC']
将是unicode字符串的单元素列表。美丽的汤总是产生Unicode。因此,您需要将列表转换为单个unicode字符串,然后将其转换为ASCII。
我不知道你是如何获得单元素列表的; 内容成员将是一个字符串和标签列表,这显然不是你拥有的。假设你总是得到一个包含单个元素的列表,并且你的测试实际上只是 ASCII,你会使用这个:
soup[0].encode("ascii")
但是,请仔细检查您的数据是否真的是ASCII。这非常罕见。更有可能是latin-1或utf-8。
soup[0].encode("latin-1") soup[0].encode("utf-8")
或者你问Beautiful Soup原始编码是什么,并在此编码中取回它:
soup[0].encode(soup.originalEncoding)

TA贡献1909条经验 获得超7个赞
您可能有一个包含一个unicode字符串的列表。在repr此是[u'String']。
您可以使用以下任何变体将其转换为字节字符串列表:
# Functional style.
print map(lambda x: x.encode('ascii'), my_list)
# List comprehension.
print [x.encode('ascii') for x in my_list]
# Interesting if my_list may be a tuple or a string.
print type(my_list)(x.encode('ascii') for x in my_list)
# What do I care about the brackets anyway?
print ', '.join(repr(x.encode('ascii')) for x in my_list)
# That's actually not a good way of doing it.
print ' '.join(repr(x).lstrip('u')[1:-1] for x in my_list)

TA贡献1871条经验 获得超13个赞
import json, ast r = {u'name': u'A', u'primary_key': 1}ast.literal_eval(json.dumps(r))
将打印
{'name': 'A', 'primary_key': 1}
添加回答
举报