我尝试使用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
}
我在这里做错了吗?
答案 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。
然后照常导入文件。