python 2.7摆脱双反斜杠

时间:2017-10-31 13:12:52

标签: python string

我有一个字符串元素列表,见下​​文

>>> s
['{\\"SrcIP\\":\\"1.1.1.1\\",\\"DstIP\\":\\"2.2.2.2\\",\\"DstPort\\":\\"80\\"}']

希望摆脱这些'\\'而改为dict:

{"SrcIP":"1.1.1.1","DstIP":"2.2.2.2","DstPort":"80"}

4 个答案:

答案 0 :(得分:1)

s是一个包含一个文本项的列表,您可以按如下方式获得所需的输出:

import ast

s = ['{\\"SrcIP\\":\\"1.1.1.1\\",\\"DstIP\\":\\"2.2.2.2\\",\\"DstPort\\":\\"80\\"}']    
s_dict = ast.literal_eval(s[0].replace('\\', ''))

print s_dict
print s_dict['DstIP']

给你以下输出:

{'SrcIP': '1.1.1.1', 'DstIP': '2.2.2.2', 'DstPort': '80'}
2.2.2.2

Python函数ast.litertal_eval()可用于将字符串安全地转换为Python对象,在本例中为字典。

答案 1 :(得分:1)

它看起来像JSON对象。您可以使用json包将其加载到dict,但首先要删除列表,\\可以调用s[0].replace('\\', '')

import json

my_dict = json.loads(s[0].replace('\\', ''))

答案 2 :(得分:1)

你可以试试这个:

import re
import ast
s = ['{\\"SrcIP\\":\\"1.1.1.1\\",\\"DstIP\\":\\"2.2.2.2\\",\\"DstPort\\":\\"80\\"}']
final_response = [ast.literal_eval(re.sub('\\\\', '', i)) for i in s][0]

输出:

{'SrcIP': '1.1.1.1', 'DstIP': '2.2.2.2', 'DstPort': '80'}

答案 3 :(得分:1)

只需使用字符串替换方法:

list_1=['{\\"SrcIP\\":\\"1.1.1.1\\",\\"DstIP\\":\\"2.2.2.2\\",\\"DstPort\\":\\"80\\"}']

for i in list_1:
    print(str(i).replace("\\",""))

或者你可以一行:

print(str(list_1[0]).replace("\\",""))

输出:

{"SrcIP":"1.1.1.1","DstIP":"2.2.2.2","DstPort":"80"}