(更新):添加代码以根据它们的 id 匹配值。问题:为什么两个字典中的匹配 id u'1' 和 'u'0' 都无法识别?
(代码目标):我正在编写一个脚本,该脚本从 .docx 文件中获取注释文本,并通过 xml 标签 ID 将其与注释匹配。我设法提取了评论标签、文本和 ID。我现在需要匹配这些。我的策略是创建两个字典:1)一个以 id 作为键,将注释文本作为值,2)第二个以 id 作为键,将注释作为值。
然后我计划遍历这两个字典,如果它们的键(即 id)匹配,我想制作匹配的注释文本/注释对的元组。我在创建字典时遇到问题,并且收到错误消息,指出我创建字典的语法无效。我不太明白为什么。有任何想法吗?
from bs4 import BeautifulSoup as Soup
f = open('transcript.xml','r')
soup = Soup(f)
#print soup.prettify()
textdict = {}
for i in soup.find_all('w:commentrangestart'):
# variable 'key' is assigned to the tag id
key = i.parent.contents[1].attrs['w:id']
#variable 'value' is assigned to the tag's text
value= ''.join(i.nextSibling.findAll(text=True)
# key / value pairs are added to the dictionary 'text_d'
textdict[key]=value
print textdict
commentdict = {}
for i in soup.find_all('w:comment'):
key = i.attrs['w:id']
value= ''.join(i.findAll(text=True)
commentdict[key]=value
print commentdict
## OUTPUT {u'1': u'contradictory about news', u'0': u'something about news'}
## {u'1': u'News; comment; negative', u'0': u'News; comment'}
## Added Code
for key in set(textdict) & set (commentdict):
if textdict[key] == commentdict[key]:
print 'yay'