什么是不同的加载、转储和读取json文件?

2024-09-26 22:53:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的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个函数的有效负载,它同时适用于这两个函数。在

谢谢。在


Tags: 文件函数jsonreadreturn堆栈defas
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:55

“loads”函数接受一个json文件,并根据确切的json文件将其转换为字典或列表。 dumps采用python数据结构,并将其转换回json。在

因此,第一个函数是加载和验证json,将其转换为python结构,然后在返回之前将其转换回json,而第二个函数只读取文件的内容,不进行转换或验证

因此,只有当json有效时,这些函数才是等价的—如果存在json错误,那么这两个函数将非常执行不同。如果您知道该文件包含一个无错误的json,这两个文件应该返回相等的输出,但是如果该文件包含json中的错误,那么第一个函数将失败,并与回溯等,第二个函数不会产生任何错误。第一个函数更容易出错,但效率较低(因为它转换json->;python->;json)。第二个函数效率更高,但不易出错(即,如果json被破坏,它不会失败)。在

相关问题 更多 >

    热门问题