Python删除或替换密钥

Python删除或替换密钥,python,Python,我试图在响应中去掉值Name。见下文: response_data_all_details = decode_transaction_response(response.text) # Remove and sensitive information we don't want to be stored in the database. response_data = remove_sensitive(response_data_all_details) 功能:如果响应中有名称,则将其替换为

我试图在响应中去掉值Name。见下文:

response_data_all_details = decode_transaction_response(response.text)

# Remove and sensitive information we don't want to be stored in the database.
response_data = remove_sensitive(response_data_all_details)
功能:如果响应中有名称,则将其替换为“未存储”文本。

def remove_sensitive(data):
    for key in data:
        if data[key] == "Name":
            data['Name'] = "Not Stored!"
    return data
然而,这个功能似乎不起作用,为什么

样本响应数据

{
  "URL" : "http:\/\/www.test.com",
  "Name" : "James",
  "Currency" : "GBP",
  "Amount" : 5.880000000000001,
}

这里一个简单的解决方案是使用:
如果输入数据

def remove_sensitive(data,key):
    if key in data:
         data[key] = "Not Stored!"
    return data
修复代码:

如果key==“Name”,则必须使用

这是因为对字典的迭代会一个接一个地生成它的键:

>>> for key in data:
...     print key
...     
URL
Currency
Amount
Name
演示:

试试这个

def remove_sensitive(data):
    for key,value in data.items():
        if key == "Name":
            data[key] = "Not Stored!"
    return data

我会使用dict方法
has\u key()


你把事情弄得太复杂了。这应该起作用:

def remove_sensitive(data):
    data['Name'] = "Not Stored!"
    return data
或者,如果您不确定键
“Name”
是否存在:

def remove_sensitive(data):
    if data.has_key('Name'):
        data['Name'] = "Not Stored!"
    return data
def remove_sensitive(data):
    if data.has_key("Name"):
        data["Name"] = "Not Stored"
    return data
def remove_sensitive(data):
    data['Name'] = "Not Stored!"
    return data
def remove_sensitive(data):
    if data.has_key('Name'):
        data['Name'] = "Not Stored!"
    return data