Python删除或替换密钥
我试图在响应中去掉值Name。见下文: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) 功能:如果响应中有名称,则将其替换为
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