How to send ICAP request with Python

I needed to send an ICAP request to a Symantec Antivirus server. Because ICAP is HTTP-like, but not quite HTTP, I could not use the wonderful requests library. So, here’s what I did instead:

def icap_request(ip):  
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
    s.connect((ip, 1344))  
    # "icap://" is what makes ICAP not quite HTTP  
    s.send(bytes("OPTIONS icap://{}/symcscanreq-av-url ICAP/1.0\n\n".format(ip), 'UTF-8'))  
    data = s.recv(1024)  
    s.close()  
    # Now I have the data, but let's make it easier to work with  
    data_dict = {}  
    data_str = data.decode('UTF-8').split('\r\n')[2:-2]  
    for line in data_str:  
        split_line = line.split(':')  
        key = split_line[0]  
        value = ''.join(split_line[1:]).strip()  
        data_dict[key] = value  
    return data_dict