Python BeautifulSoup new_标记无法插入数据-*属性

Python BeautifulSoup new_标记无法插入数据-*属性,python,beautifulsoup,Python,Beautifulsoup,我一直在尝试在我的汤中插入一个新的HTML标记,但不知道如何继续。问题是我希望标记具有“数据切换”属性,但BeautifulSoup似乎无法处理此问题 In [79]: tag = soup.new_tag("li") In [80]: tag Out[80]: <li></li> In [81]: tag2 = soup.new_tag("a") In [82]: tag.append(tag2) In [83]: tag Out[83]: <li>

我一直在尝试在我的汤中插入一个新的HTML标记,但不知道如何继续。问题是我希望标记具有“数据切换”属性,但BeautifulSoup似乎无法处理此问题

In [79]: tag = soup.new_tag("li")

In [80]: tag
Out[80]: <li></li>

In [81]: tag2 = soup.new_tag("a")

In [82]: tag.append(tag2)

In [83]: tag
Out[83]: <li><a></a></li>
[79]中的
:tag=soup.new_标签(“li”)
In[80]:标记
出[80]:
  • 在[81]中:tag2=soup.new_标签(“a”) 在[82]中:tag.append(tag2) In[83]:标记 Out[83]:
  • )声明“某些属性,如HTML5中的data-*属性,其名称不能用作关键字参数的名称”,并建议使用attrs={“data foo”:“value”}。关键是它确实适用于某些方法(例如:find_all),但不适用于new_tag()

    [97]中的
    :tag2=soup.new_标记(“a”,attrs={“数据切换”:“pill”})
    In[98]:tag2
    出[98]:
    
    这是一个已知的缺陷/限制还是我遗漏了什么?
    任何暗示都感谢

    您的属性包含破折号,因此您需要使用
    []

    >>> tag2 = soup.new_tag("a")
    >>> tag2["data-toggle"] = "pill"
    >>> tag2
    <a data-toggle="pill"></a>
    
    >tag2=soup.new_标签(“a”)
    >>>tag2[“数据切换”]=“药丸”
    >>>tag2
    
    您还可以执行以下操作:

    >>> tag2.attrs["data-toggle"] = "pill"
    >>> tag2
    <a data-toggle="pill"></a>
    
    >>tag2.attrs[“数据切换”]=“避孕药”
    >>>tag2
    
    哇,这很简单。。。我总是试图把事情复杂化。谢谢!:)
    >>> tag2 = soup.new_tag("a")
    >>> tag2["data-toggle"] = "pill"
    >>> tag2
    <a data-toggle="pill"></a>
    
    >>> tag2.attrs["data-toggle"] = "pill"
    >>> tag2
    <a data-toggle="pill"></a>