Mi ritrovo con un problema rognoso nella lettura dei dati via socket. Via client, uso questi metodi per inviare i dati:
def get(self): for item in self._directory: for root, dirs, files in os.walk(item.encode("utf-8")): for directory in dirs: path = os.path.join(root, directory) yield json.dumps([path, self._compute_metadata(path)], ensure_ascii=False) for filename in files: result = {} path = os.path.join(root, filename) result[path] = self._compute_metadata(path) yield json.dumps([result], ensure_ascii=False) for item in res.get(): conn.send(item + "\n") Via server, uso questo codice per leggere i dati: while True: data = conn.makefile().readline() if not data: break datajson = json.loads(data.decode("utf-8")) Ora, il problema e` che la prima riga la leggo correttamente, dalla seconda in poi mi vengono riportate righe spezzate, mandando la conversione da stringa a JSON in pappa, con conseguente errore. Come risolvo? Ho provato anche ad usare recv() e a creare una stringa di buffer contenente tutte le informazioni, ma anche li ho problemi nella conversione in JSON in quanto si mischia tutto (viene una cosa del tipo '["stringa": "valore"]["stringa": "valore"]'). Ovviamente ogni suggerimento e` bene accetto, anche perche` se non metto a posto 'sta cosa non ho altre alternative se non cambiare approccio Enrico
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python