>  Q&A  >  본문

通过Python将Json数据导入MongoDB

首先数据是以标准的json格式的文本。然后想要通过python脚本来导入Mongodb中。
json

{
    "service": "http", 
    "datetime": "2017-03-28 17:23:19", 
    "starttime": "1490692810", 
    "endtime": "1490692999", 
    "port": 80
}{  
    "service": "ewall", 
    "datetime": "2017-03-28 17:23:19",
    "starttime": "1490692810", 
    "endtime": "1490692999", 
    "port": 1328
}

python部分代码:

with open(filen, 'r') as f:
        while 1:
            try:
                jsonstr = f.readline().strip()
                # print jsonstr 可以输出整个json的内容
                if not jsonstr:
                    break
                try:
                    j = json.loads(jsonstr) #这里好像不处理的问题
                    
                except:
                    continue
                jsonlist.append(j)
            except:
                break

请问这个情况要怎么解决呢?谢谢

怪我咯怪我咯2741일 전495

모든 응답(3)나는 대답할 것이다

  • 阿神

    阿神2017-04-18 10:31:42

    귀하의 문제는 표준 json 형식이 아니기 때문입니다.

    으아악

    두 번째로, 데이터를 행 단위로 읽습니다. 데이터 행이 어떻게 생겼는지 알려주세요.

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 10:31:42

    @sheep3 님의 답변이 맞습니다.

    JSON을 MongoDB에 직접 넣으면 mongoimport(https://docs.mongodb.com/manu...

    를 사용할 수 있습니다.

    그래도 데이터를 처리하고 싶다면 다음과 같은 코드를 사용할 수 있습니다.

    으아악

    JSON 파일의 내용이 메모리보다 큰 경우 스트리밍을 통해 JSON 파일을 열어야 합니다. ijson 패키지(https://pypi.python.org/pypi/...)를 사용할 수 있습니다. 사용법도 비교적 간단합니다.

    으아악

    회신하다
    0
  • 迷茫

    迷茫2017-04-18 10:31:42

    @Christoph님의 답변은 더 간단하고 최적화된 솔루션을 직접적으로 언급했고 저는 요령을 배웠습니다

    회신하다
    0
  • 취소회신하다