Дополнительные апострофы в файле CSV, считанные из MongoDB - PullRequest
0 голосов
/ 09 февраля 2020

у нас есть проект в течение нескольких часов, и мы не можем решить эту проблему. У нас есть код, который читает из базы данных, которая есть в MongoDB.

    cursor = collection2.find()
    mongo_docs = list(cursor)
    docs = pandas.DataFrame(columns=[])
    for num, doc in enumerate(mongo_docs):
        doc["_id"] = doc["_id"]
        doc_id = doc["_id"]
        series_obj = pandas.Series(doc, name = doc_id)
        docs = docs.append(series_obj)


    docs.to_csv("test4.csv", ',')

Это должно работать нормально, и создайте документ с именем test4.csv, но по какой-то причине кучу дополнительных кавычек добавлены, и мы не знаем почему. Мы пытаемся сделать документ, который выглядит примерно так:

"GP";"F";18;"U";"GT3";"A";4;4;"at_home";"teacher";"course";"mother";2;2;0;"yes";"no";"no";"no";"yes";"yes";"no";"no";4;3;4;1;1;3;4;"0";"11";11
"GP";"F";17;"U";"GT3";"T";1;1;"at_home";"other";"course";"father";1;2;0;"no";"yes";"no";"no";"no";"yes";"yes";"no";5;3;3;1;1;3;2;"9";"11";11

Но наш выглядит так:

school;sex;age;address;famsize;Pstatus;Medu;Fedu;Mjob;Fjob;reason;guardian;traveltime;studytime;failures;schoolsup;famsup;paid;activities;nursery;higher;internet;romantic;famrel;freetime;goout;Dalc;Walc;health;absences;G1;G2;G3
"GP";"F";18;"U"";""GT3"";""A"";4;4;""at_home"";""teacher"";""course"";""mother"";2;2;0;""yes"";""no"";""no"";""no"";""yes"";""yes"";""no"";""no"";4;3;4;1;1;3;6;""5"";""6"";6"
"GP";"F";17;"U"";""GT3"";""T"";1;1;""at_home"";""other"";""course"";""father"";1;2;0;""no"";""yes"";""no"";""no"";""no"";""yes"";""yes"";""no"";5;3;3;1;1;3;4;""5"";""5"";6"
"GP";"F";15;""U"";""LE3"";""T"";1;1;""at_home"";""other"";""other"";""mother"";1;2;3;""yes"";""no"";""yes"";""no"";""yes"";""yes"";""yes"";""no"";4;3;2;2;3;3;10;""7"";""8"";10"

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 09 февраля 2020

В вашей строке df.to_csv вы можете добавить csv.QUOTE_NONE и посмотреть, работает ли это:

import csv
docs.to_csv("test4.csv", ',', quoting=csv.QUOTE_NONE)
...