【问题标题】:Displaying elements from a dictionary python [duplicate]显示字典python中的元素[重复]
【发布时间】:2021-06-23 22:54:40
【问题描述】:

我正在尝试显示字典的元素但我遇到了困难,当我尝试显示它时会显示整个对象,这是我的代码:

produtos = []
@tasks.loop(seconds=5)
async def aviso():
 request = requests.get("https://www.nike.com.br/snkrs#estoque")
 soup = bs4(request.text, "html.parser")
 links = soup.find_all("a", text="Comprar", class_="btn")
 for link in links:
  produtos.append(link["href"])
 print(produtos)

这里的问题是它以这种格式显示所有内容:

['https://www.nike.com.br/air-max-90-153-169-211-330199', ...]

我怎样才能只得到这本词典上的链接?

编辑:

我想这样显示:

'https://www.nike.com.br/air-max-90-153-169-211-330199', ...

我正在为不和谐创建一个机器人,我只发布了代码的有用部分。

【问题讨论】:

  • produtos.append(link["href"]) 表示您从一个列表开始,然后用字典结果填充它。如果链接的长度大于 1,您将获得超过 1 个链接结果填充在该列表中,因此您需要决定如何最好地处理此问题。例如,您可以使用produtos[0] 访问第一个链接
  • 那个输出有什么问题?这只是链接。
  • @PeptideWitch Plus 我想获取所有链接,没有方括号 [
  • @Barmar 我想获取不带方括号的链接
  • 如果你展示你想要的结果,就会避免混淆。

标签: python python-3.x dictionary


【解决方案1】:

连接链接的表示,用逗号分隔:

print(", ".join(map(repr,produtos)))

repr() 将在链接周围加上引号,", ".join() 将用逗号分隔它们。

【讨论】:

  • 我需要从字典中获取链接,因为我需要获取所有链接,而不是一一获取,也因为我将在后面的代码中使用它
  • 对了,我把变量声明为全局的,我忘了加问题
  • 我已经根据您上面的评论更新了答案。
【解决方案2】:

要打印 produtos 中不带括号的条目,只需执行 print(*produtos, sep=", ") 在这种情况下,请将 sep 设置为您希望作为链接之间分隔符的任何内容

编辑 对最终输出进行引用

print(*("'{}'".format(item) for item in produtos), sep=', ')

【讨论】:

  • 这个显示没有方括号,问题是链接没有用引号括起来,而且没有逗号,请问如何解决?
  • 如果你想用逗号作为 分隔符,那么就像我在回答中所说的那样,print(*produtos, sep=", ")。将 sep 设置为您想用分隔链接的任何内容
  • 我就是这样做的,问题是链接仍然不在引号中
  • 它现在显示引号,我更新了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2021-12-20
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 2019-08-20
相关资源
最近更新 更多