Comment changer le type de données dans MongoDB à l'aide de code en pymongo (Python)

Aug 21 2020

Je télécharge le fichier csv sur ma base. Mais la date et les autres données numériques sont présentées sous forme de chaînes. Je ne trouve nulle part des informations sur la manière de modifier le type de champ. Veuillez écrire un exemple)

Les documents se trouvent dans le tableau de ce formulaire

{
    "_id": {
        "$oid": "5f3e76dfaca73bedb23ef8a1"
    },
    "Province/State": null,
    "Country/Region": "Afghanistan",
    "Lat": "33.93911",
    "Long": "67.709953",
    "Date": "2020-08-19",
    "Value": "37599",
    "ISO 3166-1 Alpha 3-Codes": "AFG",
    "Region Code": "142",
    "Sub-region Code": "34",
    "Intermediate Region Code": null
}

Réponses

D.SM Aug 21 2020 at 21:07

Je suppose que lorsque vous analysez le fichier CSV, vous obtenez toutes les valeurs sous forme de chaînes. Par la suite, c'est ce que vous obtenez dans la base de données.

Vous devez probablement convertir manuellement les valeurs dans le type souhaité après les avoir chargées à partir du fichier CSV et avant de les insérer dans MongoDB.

KonstantinIvanov Sep 01 2020 at 19:21
df = pd.read_csv(path, parse_dates=["Date"], dtype={"Lat": "double", "Value": "int32"}, skiprows=[1])
            df = df.fillna({"Region Code": 0, "Sub-region Code": 0, "Intermediate Region Code": 0})
            df = df.astype({"Region Code": int, "Sub-region Code": int, "Intermediate Region Code": int})