我有一个简单的json文件'堆栈溢出.json" { “firstname”:“堆栈”, “lastname”:“溢出” }在
以下两种功能有什么不同:
def read_json_file_1():
with open('stackoverflow.json') as fs:
payload = ujson.loads(fs.read())
payload = ujson.dumps(payload)
return payload
def read_json_file_2():
with open ('stackoverflow.json') as fs:
return payload = fs.read()
然后,我使用'requests'模块发送post resquest和来自上述2个函数的有效负载,它同时适用于这两个函数。在
谢谢。在
“loads”函数接受一个json文件,并根据确切的json文件将其转换为字典或列表。 dumps采用python数据结构,并将其转换回json。在
因此,第一个函数是加载和验证json,将其转换为python结构,然后在返回之前将其转换回json,而第二个函数只读取文件的内容,不进行转换或验证
因此,只有当json有效时,这些函数才是等价的—如果存在json错误,那么这两个函数将非常执行不同。如果您知道该文件包含一个无错误的json,这两个文件应该返回相等的输出,但是如果该文件包含json中的错误,那么第一个函数将失败,并与回溯等,第二个函数不会产生任何错误。第一个函数更容易出错,但效率较低(因为它转换json->;python->;json)。第二个函数效率更高,但不易出错(即,如果json被破坏,它不会失败)。在
相关问题 更多 >
编程相关推荐