如果有一个元素,为什么JSON查询会返回对象,如果有多个元素则列出?

XiR*_*iR_ 5 python json pymysql

我不得不从python2重写python脚本到python 3来解决我最简单的编码问题.我不得不从mysqldb转移到似乎使用相同语法的pymysql.我访问了pymysql的github [1]站点,以下示例我注意到,当查询结果是一个元素时,它返回了一个JSON对象,但当它返回多个时,它返回一个列表.

总是返回一个包含0,1或任意数量元素的列表会不会更加一致?为什么这样做?

注意:要避免在pymysql中出现此行为,只需从以下位置删除cursorclass参数:

# Connect to the database
connection = pymysql.connect(host='localhost',user='user',
passwd='passwd', db='db', charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
Run Code Online (Sandbox Code Playgroud)

[1] https://github.com/PyMySQL/PyMySQL/

jav*_*ezg 4

根据 JSON API 规范,此行为是由于 v1.0rc1 中的重大更改所致:

重大变更:单一资源对象现在应该用 JSON 对象而不是数组来表示。这允许请求和响应文档以及 PUT/POST 请求和 PATCH 操作中的对称表示。它还简化了不支持批处理操作的实现(即它们可以允许对象而不是数组)。

你可以在这里看看