0
votes

Supprimer des guillemets doubles dans chaque rangée (écrivain CSV)

J'écris les résultats de l'API au fichier CSV à Python 3.7. Problème est-il ajoute des citations doubles ("") à chaque ligne lorsqu'elle écrit au fichier.

Je passe le format de CSV à l'appel de l'API, de sorte que je reçois des résultats au format CSV, puis je l'écrivais à CSV fichier, stockez sur un emplacement spécifique. S'il vous plaît suggérer s'il y a un meilleur moyen de le faire. P>

Voici le code exemple .. p> xxx pré>

quand j'utilise escapechaar = ' \ "' code> il ajoute (" code>) à l'adresse de toutes les valeurs de colonne. p>

Voici des échantillons d'enregistrements. P>

2264855868",42.38454",-71.01367",07/15/2019 00:00:00",07/14/2019 20:00:00"
2264855868",42.38454",-71.01367",07/15/2019 01:00:00",07/14/2019 21:00:00"


3 commentaires

Si vous l'obtenez en tant que fichier CSV, écrivez-le avec ouvert (nom de fichier, 'wb'). Écrire (REC) sans csv.writer () . Vous utilisez csv.writer lorsque vous avez des données comme liste de Python.


Merci beaucoup .. cela fonctionne parfaitement pour moi .. req = demande.get (URL = API_BASE_URL, paramiques = paramètres, en-tête = en-têtes) avec ouvert (cible_file_name, 'wb') comme csvfile.write (REQ.Content) ) Est-ce que cela va faire une différence de performance ou de quelque chose. Voulez-vous simplement être sûr de la méthode de fonctionner.


API donne des chaînes / octets que vous pouvez écrire directement dans le fichier. Avec csv.writer Vous devez convertir des chaînes / octets vers des données de Python à l'aide de csv.reader , puis le reconverser en chaîne / octets avec csv.writer < / Code> - Il n'y a donc pas de sens pour le faire.


3 Réponses :


0
votes

Avez-vous essayé de supprimer la barre oblique de escapechaar = '\ "' ? Cela ne devrait pas être nécessaire, car vous utilisez des guillemets simples pour la chaîne.

edit: à partir du Documentation :

une chaîne d'un caractère utilisé par l'écrivain pour échapper au délimiteur si la citation est définie sur Quote_None et la quote_none et la quote-chose si doublequote est fausse. En lecture, l'Escapechar supprime toute signification particulière du personnage suivant.

et le délimètre:

une chaîne d'un caractère utilisé pour séparer les champs. Il est par défaut à ','

Donc, il va échapper au délimètre (, ) avec tout ce que vous définissez comme le escapechar , dans ce cas ,

Si vous ne voulez pas d'échapper, essayez de le laisser vide


1 commentaires

Oui, essayé d'éliminer la barre oblique (escapechar = '"") mais aucune différence de résultat.



0
votes

API donne des chaînes / octets que vous pouvez écrire directement dans le fichier. xxx


avec csv.writer Vous devez convertir des chaînes / octets vers les données de Python à l'aide de csv.reader , puis convertir Retour à la chaîne / octets avec csv.writer - il n'y a donc aucun sens de le faire.


La même méthode doit fonctionner si API Envoyer n'importe quel fichier: JSON , csv , xml , pdf , images, audio, etc.

pour les fichiers plus gros Vous pouvez utiliser chunk / flux dans Demandes . Doc: Demandes - Utilisation avancée


0 commentaires

0
votes

Essayez: xxx

sortie: xxx


0 commentaires