2015-06-16 33 views
5

ho cercato di importare un file JSON semplice utilizzando mongoimport ed ottengo il seguente erroreMongoDB - Errore Mongoimport carattere non valido

PER-MacBook-Pro:/AJ$ mongoimport --db test --collection samplePM --file /users/AJ/Documents/Development/ETLwork/Dummydata/Penguin_Players.json 
2015-06-16T09:53:57.291-0400 connected to: localhost 
2015-06-16T09:53:57.293-0400 Failed: error processing document #1: invalid character '\\' looking for beginning of object key string 
2015-06-16T09:53:57.293-0400 imported 0 documents 

Esempio di file JSON è la seguente:

 { 
     "position":"Right Wing", 
     "id":8465166, 
     "weight":200, 
     "height":"6' 0\"", 
     "imageUrl":"http://1.cdn.nhle.com/photos/mugs/8465166.jpg", 
     "birthplace":"Seria, BRN", 
     "age":37, 
     "name":"Craig Adams", 
     "birthdate":"April 26, 1977", 
     "number":27 
     }, 
     { 
     "position":"Right Wing", 
     "id":8475761, 
     "weight":195, 
     "height":"6' 2\"", 
     "imageUrl":"http://1.cdn.nhle.com/photos/mugs/8475761.jpg", 
     "birthplace":"Gardena, CA, USA", 
     "age":23, 
     "name":"Beau Bennett", 
     "birthdate":"November 27, 1991", 
     "number":19 
     } 

Sto facendo qualcosa sbagliato qui?

+1

Sembra che non ci siano caratteri "UTF-8" là dove il campione non viene visualizzato –

risposta

4

Il commento sui caratteri non "UTF-8" è stato utile.

Sembra che ci sia un problema con la creazione di documenti JSON utilizzando textedit in Mac. Non sono riuscito a trovare questi caratteri non UTF-8 ma ho creato lo stesso file usando vi test.json nella shell mac. Ho incollato il contenuto, salvato il file e usato mongoimport. Ora funziona.

Grazie

+1

Lo stesso problema si è verificato - ha finito per creare il documento JSON in un testo sublime - errore risolto. –

+3

codifica UTF-8 senza BOM funziona per me http://stackoverflow.com/questions/2223882/whats-different-tra between-utf-8-and-utf-8-without-bom –

0

sono stato in grado di farla franca con l'utilizzo di --jsonArray tag, dando il percorso completo del file, e modificati è l'aggiunta di staffa all'inizio e alla fine,

[{"my":"json","file":"imported"},{"my":"cool","file":"succeeded"}] 

mongoimport --db myCoolDb --collection myCoolColl --file /path/to/my/imported/file.json --jsonArray 
+2

fyi '--jsonArray' è limitato alle importazioni di 16 MB o inferiore. –

0

Stavo diventando Failed: error processing document #112783: invalid character ',' looking for beginning of value perché uno dei miei oggetti è stato formattato in modo errato. Si noti come "psicochirurgia" manca parentesi graffe:

{ 
    "word": "psychosurgeons", 
    "firstLetter": "p" 
} 
    " psychosurgery", 
{ 
    "word": "psychosurgical", 
    "firstLetter": "p" 
} 

Dato che ci sono oltre 600.000 righe nel file che sto cercando di importare, questo sarebbe stato difficile trovare manualmente.

Così ho eseguito lo stesso comando mongoimport con piena verbosità (-vvvvv) abilitato e lo script si è fermato proprio sull'oggetto problematico. Vedi mongoimport --help per maggiori informazioni.

Spero che questo aiuti qualcuno.

Problemi correlati