如何在Python中加载JSON文件

1,077 阅读2分钟

一个JSON对象携带一个键/值对形式的数据。键是字符串,而值是JSON的数据类型。键和值用冒号分开。每个键/值对用逗号隔开。

Python有一个内置的包json,要使用json,在脚本中导入json包。

Python json load

Python json.load() 是一个内置方法,它接受一个文件对象并返回json对象。使用json.load()方法,你可以将JSON编码/转换的数据变成Python数据类型;这个过程被称为JSON解码。

语法

json.load(file_object)

参数

它需要一个文件对象作为参数。

解码时JSON和Python实体之间的映射关系

JSONPYTHON
对象字典
数组列表
字符串str
数值(int)int
数(实数)float
假的

让我们按照下面的步骤来使用json.load()函数。

如何在Python中加载json文件

要在Python中加载一个json文件,使用json.load()函数。使用open()方法打开一个json文件,创建一个文件对象,并将该文件对象传递给json.load()函数。

第一步:创建一个JSON文件

为了使用json.load()函数,创建一个data.json 文件:

{
  "data": [
    {
      "color": "red",
      "value": "#f00"
    },
    {
      "color": "green",
      "value": "#0f0"
    },
    {
      "color": "blue",
      "value": "#00f"
    },
    {
      "color": "black",
      "value": "#000"
    }
  ]
}

我们将加载data.json 文件。

因此,在我们的例子中,我们将加载外部json文件并将其转换为Python类型。

第二步:打开json文件

要在Python中打开一个文件,使用open()方法。你也可以使用Python with语句来打开文件。它返回文件对象。

# app.py

import json

# Opening JSON file
fObj = open('data.json',)

第三步:加载文件对象

要加载文件对象,使用json.load()方法,并将文件对象传给该函数。json.load()方法返回字典:

# It returns JSON object as dictionary
ogdata = json.load(fObj)
print(ogdata)

data.json文件中充满了对象的数组,这意味着当我们将其转换为 Python 数据类型时,我们可以迭代字典并在控制台中逐一打印项目:

{'data': [{'color': 'red', 'value': '#f00'}, 
          {'color': 'green', 'value': '#0f0'}, 
          {'color': 'blue', 'value': '#00f'}, 
          {'color': 'black', 'value': '#000'}
         ]
}

第四步:迭代字典数据

我们从json数据中得到了字典数据,现在我们可以迭代这些值,也就是字典的列表。为了迭代字典列表,使用**for循环** ,在控制台中一个一个地打印字典,然后关闭文件:

# app.py

import json

# Opening JSON file
fObj = open('data.json',)

# It returns JSON object as dictionary
ogdata = json.load(fObj)

# Iterating through the json list
for i in ogdata['data']:
    print(i)

# Closing file
fObj.close()

如果你运行上述文件,那么你会看到下面的输出:

{'color': 'red', 'value': '#f00'}
{'color': 'green', 'value': '#0f0'}
{'color': 'blue', 'value': '#00f'}
{'color': 'black', 'value': '#000'}

你可以看到,我们打印了字典的列表。

结论

Python json.load()方法帮助我们从文本、JSON或二进制文件中读取JSON数据。load() 函数以字典的形式返回数据。

参见

Python json到字典

Python json解析

Python dict to json

Python json 转为 csv

Python list to json