Mongodb - Mongoimport错误无效字符

时间:2015-06-16 14:11:59

标签: mongodb

我尝试使用mongoimport导入一个简单的json文件,我收到以下错误

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

示例json文件如下:

      {  
         "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
      }

我在这里做错了吗?

6 个答案:

答案 0 :(得分:5)

关于非“UTF-8”字符的评论很有帮助。

在Mac中使用textedit创建json文档似乎存在问题。我找不到这些非UTF-8字符,但我在mac shell中使用vi test.json创建了相同的文件。我粘贴了内容,保存了文件并使用了mongoimport。它现在有效。

由于

答案 1 :(得分:3)

我能够使用--jsonArray标记,给出文件的完整路径,并在开头和结尾修改它添加括号,

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

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

答案 2 :(得分:1)

导入json数据时遇到了相同的错误。而是使用mongorestore命令使用.bson数据。

mongorestore -d <db> -c <collection> <.bson-file>

如果要删除集合中的现有数据,请使用--drop

答案 3 :(得分:0)

我收到xmlhttpRequest,因为我的某个对象格式不正确。请注意“精神外科”缺少花括号:

from win32com.shell import shell, shellcon

shell.SHFileOperation((
    None,
    shellcon.FO_COPY,
    "c:\\test\\test1.txt\0c:\\test\\test2.txt",
    "c:\\test\\ελληνική+漢語+English",
    shellcon.FOF_SILENT | shellcon.FOF_NOCONFIRMATION | 
    shellcon.FOF_NOERRORUI | shellcon.FOF_NOCONFIRMMKDIR,
    None,
    None))

由于我正在尝试导入的文件中有超过600,000行,因此很难手动查找。

所以我运行了同样的Failed: error processing document #112783: invalid character ',' looking for beginning of value命令并启用了完整的详细程度({ "word": "psychosurgeons", "firstLetter": "p" } " psychosurgery", { "word": "psychosurgical", "firstLetter": "p" } ),并且脚本停在了有问题的对象上。有关详细信息,请参阅mongoimport

希望这有助于某人。

答案 4 :(得分:0)

我遇到了同样的问题,因为我在Mac上使用了texteditor。解决方案是将文件转换为纯文本。确保扩展名以.json结尾,因为texteditor希望将.txt放在最后。

答案 5 :(得分:0)

只需打开一个文本文件,然后将所有数据复制到新创建的文本文件即可。保存文本文件时,在 Encoding (编码)下拉菜单中选择选项“ UTF-8”,然后通过重命名将文本文件更改为JSON或CSV。

然后照常导入文件。