Вывод нежелательного символа \ в .json документ
Мой код выводит в json документ символ \
. Подскажите, как можно это исправить
import json
import socket
from ping3 import ping
ports = [20, 21, 22, 23, 25, 43, 53, 80,
115, 123, 143, 161, 179, 443, 445,
514, 515, 993, 995, 1080, 1194,
1433, 1723, 3128, 3268, 3306, 3389,
5432, 5060, 5900, 8080, 10000]
services = [
"FTP-DATA", "FTP", "SSH", "Telnet", "SMTP", "WHOIS", "DNS", "http", "SFTP", "NTP", "IMAP", "SNMP", "BGP", "HTTPS",
"MICROSOFT-DS", "SYSLOG", "PRINTER", "IMAPS", "POP3S", "SOCKS", "OpenVPN", "SQL Server", "PPTP", "HTTP", "LDAP",
"MySQL", "RDP", "PostgreSQL", "VNC", "Tomcat", "Webmin"]
with open('list_of_hosts.txt') as f:
num_lines = len(f.readlines())
hosts_website = []
hosts_web = []
def scan_and_write(host_name):
host_ping = ping(host_name)
if host_ping is not False:
ip = socket.gethostbyname(host_name)
json_data = [{"hostname": f"{host_name}", "ports": [{}]}]
for a in range(len(ports)):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(0.01)
result = s.connect_ex((ip, ports[a]))
if result == 0:
json_data[0]["ports"][0][ports[a]] = services[a]
return json.dumps(json_data)
else:
json_data = [{"hostname": f"{host_name}"}]
return json.dumps(json_data)
with open('../pythonProject/list_of_hosts.txt') as f:
i = 0
for i in range(num_lines):
line = f.readline()
if 'website' in line:
hosts_website.append(line.rstrip('\n'))
with open('../pythonProject/list_of_hosts.txt') as f:
i = 0
for i in range(num_lines):
line = f.readline()
if 'web' in line:
hosts_web.append(line.rstrip('\n'))
data_website = []
data_web = []
with open('hosts.json', "w") as f:
json_website_and_web = {"website.ru": data_website, "web.com": data_web}
for i in range(len(hosts_website)):
data_website.append(scan_and_write(host_name=hosts_website[i]))
for i in range(len(hosts_lmru)):
data_web.append(scan_and_write(host_name=hosts_web[i]))
d.write(json.dumps(json_website_and_web))
получается примерно следующее
{"website.ru": ["[{\"hostname\": \"test.website.ru\", \"ports\": [{\"80\": \"http\"}]}]"}, "web.com": ["[{\"hostname\": \"test.web.com\"}]"]}
Источник: Stack Overflow на русском