无法使用python读取json文件

时间:2018-01-02 05:16:03

标签: python json mongodb

我正在尝试读取一个jon文件,它是Mongodb的输入。如果我可以编辑单个记录作为有效的杰森我能够这样做。但是当我试图读取整个文件时,我无法做到。它告诉我错误。

Error message

我已经完成了如下所示的基本代码。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import json 
# comment : Importing the json file to read;
database = "new 2.json"
data = json.loads(open(database).read())

# Comment : Variable Declaration;

# Comment : Display the json values;
for key,value in data.iteritems():
    if 'patient_id' == key:
        print("key: {0} | value: {1}".format(key, value))
    if 'name' == key:
        print("key: {0} | value: {1}".format(key, value))
    if 'age' == key:
        print("key: {0} | value: {1}".format(key, value))
    if 'gender' == key:
        print("key: {0} | value: {1}".format(key, value))
# for key,value in data.iteritems():
    if 'address' == key:
        print("key: {0} | value: {1}".format(key, value))
    # if 'labRecords' == key:
        # print("key: {0} | value: {1}".format(key, value))

我能够打印单个记录的数据,我已将其更正为正确的json文件。 但对于其他人我需要修改所有记录。 有没有办法呢???

2 个答案:

答案 0 :(得分:0)

看起来你错过了open的第二个参数,它应该是以下之一:

arwrbwb

在工作目录中使用文件test.json,这对我有用:

Test.json

{
  "foo": 1,
  "bar": 2,
  "baz": 3
}

Python脚本:

import json

with open("test.json", "rb") as f:
    data = json.load(f)


for key, value in data.items():
    print(key, value)

输出:

foo 1
bar 2
baz 3

答案 1 :(得分:-1)

你可以试试这个。

import json
with open("json_data.json", mode='r', encoding='utf-8') as json_data:
    data = json.load(json_data)
    print(data)

<强> json_data.json

 {
  "hello": 11,
  "world": 22,
  "json": 33
}

<强>输出

{'hello': 11, 'world': 22, 'json': 33}

确保您的json格式数据正常。并首先检查你得到你想要的输出。而且你可以继续你的进一步工作。