Генерирует именно то, что вы хотите:
D1 = {2:3, 1:89, 4:5, 3:0}
sort_dic = {}
for i in sorted(D1):
sort_dic.update({i:D1[i]})
print sort_dic
{1: 89, 2: 3, 3: 0, 4: 5}
Но это не способ записи для этого, потому что он может показать отличное поведение с разными словарями, которые я недавно узнал. Поэтому в ответ на мой запрос, который я разделяю здесь, был предложен прекрасный путь.
from collections import OrderedDict
sorted_dict = OrderedDict(sorted(D1.items(), key=lambda t: t[0]))
Вы можете использовать команду date
в Bash для форматирования метки времени.
текущая дата и время
date +%Y-%m-%dT%H:%M:%S
# 2018-07-14T03:00:58
минус 7 минут
date --date '-7 min' +%Y-%m-%dT%H:%M:%S
# 2018-07-14T02:53:58
Используя `` (ticks / backticks), вы можете попробовать поместить его в другое команда в Bash (но вам нужно использовать " "
вместо ' '
в -d
)
curl -XGET "URL" -H 'Content-Type: application/json' -k -u u_name:XXX -d'
{
"query": {
"query_string": {
"query": "@timestamp:[`date --date \'-7 min\' +%Y-%m-%dT%H:%M:%S`.000Z TO *]"
}
},
"size": 1000
}
'|json_pp )
Если вам это нужно как код Python, вы можете использовать страницу https: //curl.trillworks.com/, чтобы преобразовать curl
в requests
, а затем вы можете вносить изменения.
import requests
import datetime
import pprint # pretty print
#dt = datetime.datetime(2018, 6, 29, 6, 47, 40)
dt = datetime.datetime.now()
td_7mins = datetime.timedelta(minutes=7)
dt = dt - td_7mins # now - 7 minutes
#timestamp = "@timestamp:[{}.000Z TO *]".format(now.strftime("%Y-%m-%dT%H:%M:%S"))
timestamp = dt.strftime("@timestamp:[%Y-%m-%dT%H:%M:%S.000Z TO *]")
data = {
"query": {
"query_string": {
"query": timestamp
}
},
"size": 1000
}
print(data)
url = "https://httpbin.org/get" # good for tests
r = requests.get(url, json=data, headers=headers, verify=False, auth=('u_name', 'XXX'))
pprint.pprint(r.json())