说说如何利用 Python 实现 JSON 与 Python 对象之间的相互转换

JSON (JavaScript Object Notation)是 JavaScript 程序编写数据结构的原生方式,它可以将数据格式化,成为可供人阅读的字符串。

Python 的 json 模块可以处理 JSON 格式的数据。但因为 JSON 是 JavaScript 体系,所以只能表示字符串、整型、浮点型、布尔型、列表、字典和 NoneType。

1 JSON 字符串转为 Python 对象

要将包含 JSON 数据的字符串转换为 Python 对象,可以把它传递给 json.loads() 函数,loads 的意思是 load string。

import json
import logging
import os

logging.basicConfig(level=logging.DEBUG, format='%(levelname)s - %(message)s')

'''
处理 JSON
@author Deniro Li
'''
os.chdir('F:/temp/')

# JSON 字符串转为 JSON 对象
json_data_str = ''' {
    "id": "/en/45_2006",
    "directed_by": [
      "Gary Lennon"
    ],
    "initial_release_date": "2006-11-30",
    "genre": [
      "Black comedy",
      "Thriller",
      "Psychological thriller",
      "Indie film",
      "Action Film",
      "Crime Thriller",
      "Crime Fiction",
      "Drama"
    ],
    "name": ".45"
  }'''
json_data = json.loads(json_data_str)
logging.info('json_data -> ' + str(json_data))

运行结果:

INFO - json_data -> {'id': '/en/45_2006', 'directed_by': ['Gary Lennon'], 'initial_release_date': '2006-11-30', 'genre': ['Black comedy', 'Thriller', 'Psychological thriller', 'Indie film', 'Action Film', 'Crime Thriller', 'Crime Fiction', 'Drama'], 'name': '.45'}

这个函数会返回为一个 Python 字典,因为 Python 字典没有顺序,所以输出的键-值对可能以不同的顺序出现。不过实测时,发现输出一般会保持原始数据的顺序。

2 Python 对象转为 JSON 字符串

json.dumps()函数可以将一个 Python 对象转换成 JSON 格式的字符串。这里的 dumps 意思是 dump string。

python_value={'id':'/en/45_2006','name':'.45'}
json_value=json.dumps(python_value)
logging.info('json_value -> ' + str(json_value))

运行结果:

INFO - json_value -> {"id": "/en/45_2006", "name": ".45"}
发布了671 篇原创文章 · 获赞 766 · 访问量 99万+

猜你喜欢

转载自blog.csdn.net/deniro_li/article/details/105308019