我有一个名为tasks
的数组,其内容如下所示。
[[#<Task id: 1, date: "2016-08-23", members: 5>, #<Task id: 2, date: "2016-08-20", members: 4> #<Task id: 3, date: "2016-08-24", members: 6>]]
目前,当我打印这些内容时,它会以上面显示的格式正确打印。
我的目标是按日期对数组进行排序。
sortedTasks = tasks.sort_by do |task|
task.first[:date]
end
p sortedTasks
不幸的是,这打印出完全相同的数组,没有任何变化。
我想也许日期有问题,并尝试使用to_date
,但这不是问题。
为了测试,我决定使用常规整数,所以我使用了下面的
sortedTasks = tasks.sort_by do |task|
task.first[:members]
end
p sortedTasks
同样的事情,没有变化。
令人困惑的部分是没有错误消息,它只是打印sortedTasks
,好像它是原始的tasks
数组而没有任何变化。
p task.class
确认它是一个数组。
答案 0 :(得分:2)
如果您的粘贴数组是正确的,那么您正在对包含一个元素的数组进行排序,这是另一个数组。因为它只是一个元素,所以它已经有序了。
我希望你的意思是
import requests
import json
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
#Set up credentials object
auth_key_url = "<JSON CREDENTIALS FILE>"
file_contents = requests.get(auth_key_url).content
key_dict = json.loads(file_contents)
creds = ServiceAccountCredentials.from_json_keyfile_dict(key_dict, ['https://spreadsheets.google.com/feeds'])
#Now build the API object
discoveryUrl = "https://sheets.googleapis.com/$discovery/rest?version=v4"
gsheet = build('sheets', 'v4', discoveryServiceUrl=discoveryUrl, credentials=creds)
result = gsheet.spreadsheets().values().get(spreadsheetId="<A SHEET ID>", range="Sheet1!A1:ZZ").execute()