您现在的位置是:主页 > news > 网站二级目录 修改路径/网站建设一条龙

网站二级目录 修改路径/网站建设一条龙

admin2025/6/29 16:52:22news

简介网站二级目录 修改路径,网站建设一条龙,太原做网站的网络公司,asp网站怎么做三语1. 基本概念 1.1 Json和Javascript JSON, 全称JavaScript Object Notation,它通过对象和数组的组合来表示数据。在JavaScript中一切都是对象,因此,任何支持的类型都可以通过JSON来表示,常用的类型有数据和对象。 JavaScript中&…

网站二级目录 修改路径,网站建设一条龙,太原做网站的网络公司,asp网站怎么做三语1. 基本概念 1.1 Json和Javascript JSON, 全称JavaScript Object Notation,它通过对象和数组的组合来表示数据。在JavaScript中一切都是对象,因此,任何支持的类型都可以通过JSON来表示,常用的类型有数据和对象。 JavaScript中&…

1. 基本概念

1.1 JsonJavascript

JSON, 全称JavaScript Object Notation,它通过对象和数组的组合来表示数据。在JavaScript中一切都是对象,因此,任何支持的类型都可以通过JSON来表示,常用的类型有数据和对象。

JavaScript中,对象用{}表示,例如{key1:value1, key2:value2...},数组用[],例如["jack", "hong",...]

一个JSON对象可以写成如下,[]{}可自由嵌套组合

[{"name": "bob","gender": "male","birthday": "1992-10-18"
},{"name": "john","gender": "female","birthday": "1995-10-18"
}]

1.2 json对象和python中字典的区别

相同点
    两者在写法上是一样的。
不同点

  • 1)字典是一种数据结构,json是一种格式;
  • 2)字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性
  • 3)json是格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,但字典就无所谓了

python提供了json模块,可以方便的把json格式的字符串转化为python的数据结构。

2. 调用json.loads()json文本字符串转为python中的数据结构

2. 1 基本例子

import json# 三个引号也是字符串
str = '''
[{"name": "bob","gender": "male","birthday": "1992-10-18"
},{"name": "john","gender": "female","birthday": "1995-10-18"
}]
''' print(type(str))
data = json.loads(str)
print(data)
print(type(data))

输出结果:

<class 'str'>
[{'gender': 'male', 'name': 'bob', 'birthday': '1992-10-18'}, {'gender': 'female', 'name': 'john', 'birthday': '1995-10-18'}]
<class 'list'>

这里使用loads()方法将json字符串转化python列表,那么可用索引获得相应值

data[0]['name']
data[0].get('name')   # 字典都可以用get()方法来获取相应的值

结果都是 bob,但推荐使用第二种;因为使用get()方法,即使键名不存在,也不会报错,而是返回None,如下

data[0].get('age')
data[0].get('age', 25)# 输出如下
None
25  # key不存在时,返回默认值

注意:
变量str中的数据需要用双引号来包着,不能用单引号,否则会报错

2.2 从文件中读取字符串内容,再用loads()转化为列表

比如还用上面变量str中的字符串,文件名为data.json

import jsonwith open('data.json', 'r') as file:str = file.read()data = json.loads(str)print(data)

3. 调用json.dumps()

3.1 用dumps()方法将列表转化为字符串,再用write()方法写入文本

import jsondata = [{'name' : 'bob','gender': 'male','birthday': '1992-10-19'
}]with open('data.json', 'w') as file:file.write(json.dumps(data))

data.json的文本内容为:

[{"name": "bob", "gender": "male", "birthday": "1992-10-19"}]

3.2 如果想保存JSON格式,可以加一个参数indent,代表缩进字符个数

with open('data.json', 'w') as file:file.write(json.dumps(data, indent=2))

得到的data.json文本内容为

[{"name": "bob","gender": "male","birthday": "1992-10-19"}
]

3.3. 有中文的情况下,需要指定ensure_asciiFalse, 并且规定文件输出的编码

with open('data.json', 'w', encoding='utf-8') as file:file.write(json.dumps(data, indent=2, ensure_ascii=False))