国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mongodb: “invalid character ',' looking

Faremax / 4021人閱讀

摘要:我以為是編碼的問題,可能是下的編碼有問題,因為有一個談論這個問題的。其中遇到了也是的問題提到的這個做法很不錯,使用這個參數確定位置。

從群里獲取了一個超大的json(也就800M),需要導入mongodb,然后遇到了一個問題:

$ mongoimport --db weibo --collection data --file test.json
2018-05-09T16:10:22.357+0800    connected to: localhost
2018-05-09T16:10:22.360+0800    Failed: error processing document #2: invalid character "," looking for beginning of value
2018-05-09T16:10:22.360+0800    imported 0 documents
first

一開始,我先去 菜鳥工具1驗證了一下我的json格式不是不是正確,json格式是沒有沒問題的。

second

我以為是編碼的問題,可能是mac下的編碼有問題,因為stackoverflow2有一個談論這個問題的。上邊的回復說是有UTF8不支持的字符,但是他們遇到的問題都是,我還是去Windows服務器上裝上了mongodb,然后還是這個問題,可見我這個可能不是字符問題。
其中JP Lew遇到了也是,的問題提到的這個做法很不錯,使用-vvvv這個參數確定位置。

$ mongoimport --db weibo --collection data --file test.json -vvvvv
2018-05-09T16:30:09.538+0800    using 4 decoding workers
2018-05-09T16:30:09.539+0800    using 1 insert workers
2018-05-09T16:30:09.539+0800    will listen for SIGTERM, SIGINT, and SIGKILL
2018-05-09T16:30:09.542+0800    filesize: 823127226 bytes
2018-05-09T16:30:09.542+0800    using fields:
2018-05-09T16:30:09.552+0800    connected to: localhost
2018-05-09T16:30:09.552+0800    ns: weibo.data
2018-05-09T16:30:09.552+0800    connected to node type: standalone
2018-05-09T16:30:09.553+0800    standalone server: setting write concern w to 1
2018-05-09T16:30:09.553+0800    using write concern: w="1", j=false, fsync=false, wtimeout=0
2018-05-09T16:30:09.553+0800    standalone server: setting write concern w to 1
2018-05-09T16:30:09.553+0800    using write concern: w="1", j=false, fsync=false, wtimeout=0
2018-05-09T16:30:09.555+0800    Failed: error processing document #2: invalid character "," looking for beginning of value
2018-05-09T16:30:09.555+0800    imported 0 documents

嗯,還是這個問題,所以我這個問題應該跟JP的那個也不一樣。而且我這個應該是第一個json就出問題了!

插曲

因為文件里好多東西都沒用,所以我想只把有用的那幾行挑出來,但是結果感人,還是想個正經辦法把。
附上 cat+grep提取個別行3

[root@localhost test]# cat test.txt 

hnlinux

peida.cnblogs.com

ubuntu

ubuntu linux

redhat

Redhat

linuxmint

[root@localhost test]# cat test2.txt 

linux

Redhat

[root@localhost test]# cat test.txt | grep -f test2.txt

hnlinux

ubuntu linux

Redhat

linuxmint
third

最后,在我一次又一次的實驗下,終于找到了問題:

{
    ...
},
{
    ...
},
...

泥煤兩個json中間多了一個逗號啊,然后寫了一個腳本把這個逗號去掉吧。。。

import os
import re
import sys

args = sys.argv
if len(args) != 3 or args[1] == args[2]:
    raise Warning()
abs_path = os.path.abspath(".")
org_path = os.path.join(abs_path, args[1])
new_path = os.path.join(abs_path, args[2])
re_com = re.compile(r"^},")

try:
    fr = open(org_path, "r")
    fw = open(new_path, "w")
    for line in fr:
        if re_com.match(line):
            line = "}
"
        fw.writelines(line)
except IOError as e:
    print(e)
finally:
    if fr:
        fr.close()
    if fw:
        fw.close()

這么pythonic的處理大文件的方式來自:https://www.cnblogs.com/wulaa... :

with open(filename, "r") as file:
    for line in file:
        ....

ok,把新文件導入進去~

$ mongoimport --db weibo --collection data --file new.json
2018-05-09T15:58:36.211+0800    connected to: localhost
2018-05-09T15:58:39.194+0800    [##......................] weibo.data77.5MB/785MB (9.9%)
2018-05-09T15:58:42.195+0800    [####....................] weibo.data160MB/785MB (20.4%)
2018-05-09T15:58:45.195+0800    [#######.................] weibo.data243MB/785MB (31.0%)
2018-05-09T15:58:48.203+0800    [#########...............] weibo.data323MB/785MB (41.1%)
2018-05-09T15:58:51.197+0800    [############............] weibo.data402MB/785MB (51.2%)
2018-05-09T15:58:54.195+0800    [##############..........] weibo.data478MB/785MB (60.9%)
2018-05-09T15:58:57.196+0800    [#################.......] weibo.data560MB/785MB (71.4%)
2018-05-09T15:59:00.195+0800    [###################.....] weibo.data642MB/785MB (81.8%)
2018-05-09T15:59:03.196+0800    [######################..] weibo.data722MB/785MB (92.0%)
2018-05-09T15:59:05.521+0800    [########################] weibo.data785MB/785MB (100.0%)
2018-05-09T15:59:05.522+0800    imported 95208 documents

Bingo!


這里有兩篇討論這個問題的,我沒來得及看,留給有需要的人(好吧,主要是看著太吃力了):

https://stackoverflow.com/que...

https://groups.google.com/for...


  • https://c.runoob.com/front-en... ?

  • https://stackoverflow.com/que... ?

  • http://www.cnblogs.com/peida/... ?

  • 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19250.html

    相關文章

    • mongodb: “invalid character ',' looking

      摘要:我以為是編碼的問題,可能是下的編碼有問題,因為有一個談論這個問題的。其中遇到了也是的問題提到的這個做法很不錯,使用這個參數確定位置。 從群里獲取了一個超大的json(也就800M),需要導入mongodb,然后遇到了一個問題: $ mongoimport --db weibo --collection data --file test.json 2018-05-09T16:10:22....

      Edison 評論0 收藏0
    • 聊聊MongoDB - MongoDB的簡單安裝

      摘要:安裝全過程環境基本情況我是在電腦下安裝的系統位,這個也是導致我安裝的時候出現異常提示,原因可能是的版本是位的,我應該再找一個位的,但事實上我找不到。 簡述 之前講了一些關于MongoDB的知識,出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計算機的虛擬機的centos系統下安裝MongoDB的經歷,希望感興趣的你們在安裝MongoDB的時候出現問題可以來看看我是怎么安裝的...

      notebin 評論0 收藏0
    • 聊聊MongoDB - MongoDB的簡單安裝

      摘要:安裝全過程環境基本情況我是在電腦下安裝的系統位,這個也是導致我安裝的時候出現異常提示,原因可能是的版本是位的,我應該再找一個位的,但事實上我找不到。 簡述 之前講了一些關于MongoDB的知識,出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計算機的虛擬機的centos系統下安裝MongoDB的經歷,希望感興趣的你們在安裝MongoDB的時候出現問題可以來看看我是怎么安裝的...

      whatsns 評論0 收藏0

    發表評論

    0條評論

    Faremax

    |高級講師

    TA的文章

    閱讀更多
    最新活動
    閱讀需要支付1元查看
    <