为了账号安全,请及时绑定邮箱和手机立即绑定

Python字符串打印为

Python字符串打印为

www说 2019-07-26 15:03:54
Python字符串打印为这肯定是一个简单的,但它真的很烦我。我有一个脚本可以读入网页并使用Beautiful Soup来解析它。从汤中我提取所有链接,因为我的最终目标是打印出link.contents。我正在解析的所有文本都是ASCII。我知道Python将字符串视为unicode,我确信这非常方便,只是在我的小脚本中没用。每次我打印出一个包含'String'的变量时,我都会[u'String']打印到屏幕上。是否有一种简单的方法可以将其恢复为ascii,还是应该编写正则表达式来删除它?
查看完整描述

3 回答

?
MYYA

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)


查看完整回答
反对 回复 2019-07-26
?
jeck猫

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)


查看完整回答
反对 回复 2019-07-26
?
慕桂英4014372

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}


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 555 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信