我有一个字符串元素列表,见下文
>>> 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"}
答案 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"}