JSON(JavaScript Object Notation)是用于呈现结构化数据的著名数据格式。在服务器和网络应用之间以JSON格式传输和接收数据是一种普遍的做法。你可以查看《如何在Python中解析JSON》。
Python dict到json
要将Python dict转换为json,使用json.dumps()方法。 **json.dumps()是一个内置函数,可以将字典转换为一个字符串对象。"json "**模块使得解析包含JSON对象的JSON字符串变得容易。
要把一个字符串加载到dict中,使用json.load() 方法。如果你有一个Python对象,你可以使用json.dumps()方法将其转换为JSON字符串。
要在Python中进行任何与json有关的操作,请使用Python的json 模块。如果你在使用json模块之前导入它,会有帮助。
import json
json模块使得解析JSON字符串和包含JSON对象的文件变得容易。
你可以使用**json.dumps()**方法将一个字典转换为JSON字符串。
对JSON进行编码的过程通常被称为序列化。这个术语指的是将数据转化为一系列的字节(因此是串行)存储或在网络上传输。
你可能还会听到marshaling这个词,但那是另一个讨论。所以很自然地,反序列化是一个对等的过程,即对已经以JSON标准存储或传送的数据进行解码。
请看下面的例子。
# app.py
import json
appDict = {
'name': 'messenger',
'playstore': True,
'company': 'Facebook',
'price': 100
}
app_json = json.dumps(appDict)
print(app_json)
所以,我们定义了一个字典,然后使用json.dumps() 方法将该字典转换为 JSON。输出结果如下。
如果你想对键进行排序,使用sort_keys作为json_dumps()的第二个参数。
请看下面的例子。
# app.py
import json
personDict = {
'bill': 'tech',
'federer': 'tennis',
'ronaldo': 'football',
'woods': 'golf',
'ali': 'boxing'
}
app_json = json.dumps(personDict, sort_keys=True)
print(app_json)
其输出结果如下。
**json.dumps()**返回python dict的JSON字符串表示。
在Python中写JSON到一个文件
要在Python中把JSON写进一个文件,请使用**json.dump()**方法。json.dump()是一个内置的Python方法,可以将对象转换为合适的json对象。
请看下面的代码。
# app.py
import json
personDict = {
'bill': 'tech',
'federer': 'tennis',
'ronaldo': 'football',
'woods': 'golf',
'ali': 'boxing'
}
with open('person.txt', 'w') as json_file:
json.dump(personDict, json_file)
在上面的程序中,我们用'w'以书写模式打开了名为person.txt的文件。如果文件不存在,它将被创建。然后,json_dump()将personDict转换为JSON字符串,保存在person.txt文件中。
当你运行上述代码时,person.txt 文件被创建,该文件内的json字符串被写入。
Python转储dict到json文件
假设你有一个这样的字典。
# app.py
data = {'Eleven': 'Millie',
'Mike': 'Finn',
'Will': 'Noah'}
现在,你必须把这个 dict 转储为 json 到一个文件,那么比较简单的方法是通过以下方式。
# app.py
import json
data = {'Eleven': 'Millie',
'Mike': 'Finn',
'Will': 'Noah'}
with open('app.json', 'w') as fp:
json.dump(data, fp)
如果你运行上面的文件,你可以看到app.json 文件被创建,然后它的内容如下。
{ "Eleven": "Millie", "Mike": "Finn", "Will": "Noah" }
上面的例子是Python中文件处理的一个简单案例。我们使用了Python中的File open()函数。
Python dict 到 json 的双引号
要创建一个所有名字都在双引号内的字典,而不是默认的单引号,使用下面的代码。
# app.py
import json
class App(dict):
def __str__(self):
return json.dumps(self)
couples = [['eleven', 'Millie'],
['mike', 'Finn'],
['max', 'Sadie'],
['dustin', 'Gaten']]
pairs = App(couples)
print(pairs)
请看输出结果。
➜ pyt python3 app.py
{"eleven": "Millie", "mike": "Finn", "max": "Sadie", "dustin": "Gaten"}
➜ pyt
本教程就到此为止。
推荐帖子
The postPython dict to json: How to Convert Dictionary to JSONappeared first onAppDividend.