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

时间:2015-06-06 14:22:00

标签: python json pymysql

我不得不从python2到python 3重写一个python脚本来解决我最简单的编码问题。我不得不从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)

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

1 个答案:

答案 0 :(得分:4)

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

  

突然变化:奇异的资源对象现在应该是   用JSON对象而不是数组表示。这允许   请求和响应文档中的对称表示   作为PUT / POST请求和PATCH操作。它也简化了   不支持批处理操作的实现(即它们可以允许对象而不是数组)。

您可以查看here