从字典中删除反斜杠

时间:2019-08-17 20:33:37

标签: python json python-3.x dictionary logstash

嗨,我正在尝试使用python在我看到“ \”的地方将json转储到文件中 示例如下

{\"eventVersion\":\"1.05\",\"userIdentity\":{\"type\":\"IAMUser\",\"principalId\":\"AIDAJJM7GL72KEP64JVYG\",\"arn\":\"arn:aws:iam::5030689XXXX:user/abhi\",\"accountId\":\"5030689XXX\",\"accessKeyId\":\"ASIAXKIJ7FDUSM\",\"userName\":\"abhipandey\",\"sessionContext\":{\"attributes\":{\"mfaAuthenticated\":\"false\",\"creationDate\":\"2019-08-10T09:49:34Z\"}},\"invokedBy\":\"signin.amazonaws.com\"},\"eventTime\":\"2019-08-10T09:49:58Z\",\"eventSource\":\"sns.amazonaws.com\",\"eventName\":\"ListSubscriptions\",\"awsRegion\":\"us-west-2\",\"sourceIPAddress\":\"103.214.189.229\",\"userAgent\":\"signin.amazonaws.com\",\"requestParameters\":{\"nextToken\":\"AAHLcEnGPYVVsORCkUMXjJF0FHnYLalrN+BfvizlKzkWvg==\"},\"responseElements\":null,\"requestID\":\"247dc857-993e-5677-a8df-9d9f0cb805dd\",\"eventID\":\"5e726329-2342-48e6-8e00-5c2fa9856ed9\",\"eventType\":\"AwsApiCall\",\"recipientAccountId\":\"50306896\"}

我可以得到帮助以从任何地方删除此反斜杠的信息。

2 个答案:

答案 0 :(得分:0)

import json
remove_bs = r'{\"eventVersion\":\"1.05\",\"userIdentity\":{\"type\":\"IAMUser\",\"principalId\":\"AIDAJJM7GL72KEP64JVYG\",\"arn\":\"arn:aws:iam::503068961001:user/abhipandey\",\"accountId\":\"503068961001\",\"accessKeyId\":\"ASIAXKIJ7FDUSMHIHV7G\",\"userName\":\"abhipandey\",\"sessionContext\":{\"attributes\":{\"mfaAuthenticated\":\"false\",\"creationDate\":\"2019-08-10T09:49:34Z\"}},\"invokedBy\":\"signin.amazonaws.com\"},\"eventTime\":\"2019-08-10T09:49:58Z\",\"eventSource\":\"sns.amazonaws.com\",\"eventName\":\"ListSubscriptions\",\"awsRegion\":\"us-west-2\",\"sourceIPAddress\":\"103.214.189.229\",\"userAgent\":\"signin.amazonaws.com\",\"requestParameters\":{\"nextToken\":\"AAHLcEnGPYVVsORCkUMXjJF0FHnYLalrN+BfvizlKzkWvg==\"},\"responseElements\":null,\"requestID\":\"247dc857-993e-5677-a8df-9d9f0cb805dd\",\"eventID\":\"5e726329-2342-48e6-8e00-5c2fa9856ed9\",\"eventType\":\"AwsApiCall\",\"recipientAccountId\":\"503068961001\"}'

clear = remove_bs.replace("\\", "")
json_data = json.loads(clear)

如何创建此数据:

import json
not_encoded = {"created_at":"Fri Aug 08 11:04:40 +0000 2014"}
encoded_data = json.dumps(not_encoded)
print(encoded_data)
>>>{"created_at": "Fri Aug 08 11:04:40 +0000 2014"}
double_encode = json.dumps(encoded_data)
print(double_encode)
>>>"{\"created_at\": \"Fri Aug 08 11:04:40 +0000 2014\"}"

编辑:

如果您已经加载了数据,请卸载并重新加载

json_string = json.dumps(json_data)
new_clear = json_string.replace("\\", "")
json_data = json.loads(new_clear)
print(json_data)

答案 1 :(得分:0)

看起来您刚刚转义了没有反斜杠的字符串表示形式。

如果您确认字符串中存在反斜杠,请使用以下代码将其删除:

json_str = json_str.replace('\\', '')