更改包含 RDFlib 术语的字典的键名

Changing the name of the key of a dict comprising RDFlib terms

过去有人问过这个问题的变体。但是,我无法获得对我有用的回复。这是我的示例字典:

{rdflib.term.URIRef(u'<http://purl.org/net/ontology#isGivenDrugA>'): rdflib.term.Literal(u'<http://purl.org/net/ontology#dose1>')}
{rdflib.term.URIRef(u'<http://purl.org/net/ontology#isGivenDrugB>'): rdflib.term.Literal(u'<http://purl.org/net/ontology#dose2>')}
{rdflib.term.URIRef(u'<http://purl.org/net/ontology#isGivenDrugC>'): rdflib.term.Literal(u'<http://purl.org/net/ontology#dose3>')}

我想将每个字典中的第一个术语重命名为 isNotGivenDrugA 或 B 或 C。例如:

{rdflib.term.URIRef(u'<http://purl.org/net/ontology#isNotGivenDrugA>'): rdflib.term.Literal(u'<http://purl.org/net/ontology#dose1>')}

我该怎么做?

这是我目前的代码:

for s in notGivenDrugList:
        print ('s: ',s)
        for k,v in s.iteritems():
            print k

k 给了我每个字典的第一个词。如果我根据 k.replace 为它分配一个值,那将不起作用,因为字典的键是不可变的,而 iteritems 只会创建键的副本。

你不能。您将需要使用所需的键重新创建字典项目。