我有一个低于json的文件,但正在努力只显示最新的from zeep import Client, Settings
settings = Settings(xml_huge_tree=True)
client = Client('http://www.cbr.ru/secinfo/secinfo.asmx?WSDL', settings=settings)
s = '2019-06-21T00:00:00'
with client.settings(raw_response=True):
result = (client.service.IDRepoRUBXML(s))
#print(dir(result))
text1 = (result.text)
print(text1)
#
#data = literal_eval(text1.decode('utf8'),)
def escape(t):
"""HTML-escape the text in `t`."""
return (t.replace("&","&").replace("<","<" ).replace( ">",">").replace("'","'").replace(""",'"'))
m = escape(text1)
print(m)
的{{1}}。
我尝试过
description
还有一些,但我无法解决这个问题。
任何人都可以提供帮助吗?
JSON:
createdDate
答案 0 :(得分:1)
只需按.createdDate排序,然后(假设即使只有多个.createdDate值最大,也只需要一个值),请选择最后一个:
.items
| sort_by(.createdDate)[-1].description
如果需要平局中的所有描述:
.items
| sort_by(.createdDate)
| (.[-1].createdDate) as $max
| .[]
| select($max == .createdDate)
| .description
答案 1 :(得分:0)
编辑:使用峰回答是优越的
这是一个简单的脚本,可通过2个命令执行此操作。大概可以完成1次,但是我的nooblet技能还不够
您可以使用JQ中的数字数组通过管道传递到max
,它将在输入数组中返回最大值。
然后,我们使用select
抓取包含最大值的对象并输出描述。
我们还将使用arg
,它允许我们引用局部环境变量,并且需要将其强制转换为数字,或者JQ认为它是字符串。
maxDate=$(cat tmp.json | jq '[.items[].createdDate] | max')
cat tmp.json | jq --arg maxDate "$maxDate" '.[][] | select(.createdDate == ($maxDate | tonumber)).description'
输出:
"this is description 2"
将来,请发布您想要的输出以及您的问题,以便响应者确信他们正在按照您的喜好解决问题