我正在尝试使用.split()[-1]pyjq 剪切json 键值的最后一个字,但失败并出现错误:jq: error: syntax error, unexpected '('键/值 - “主题”:“用户的用户 ID:2432343f3f-34kfert-343mn5788886”JSON:[ { "id": "The user has user id: 76e195fa-67f1-4ea6-bb0e-29c123855978", "date": "2018-11-01T08:41:53Z" }, { "id": "The user has user id: 195fa76e-67f1-4ea6-bb0e-5597829c1238", "date": "2018-10-31T14:43:04Z" }]response_read = open('my.json', 'r')response_read_parsed = json.loads(response_read.read())rule = pyjq.all('.value[] | { "id": .["subject"].split()[-1], "date": .receivedDateTime }', response_read_parsed)但是如果我在没有 pyjq 的情况下编写,这种方法有效myid= (response_read_parsed['subject'].split()[-1])print json.dumps(myid, indent=4)由于有多个像上面这样的条目,我决定使用 pyjq 进行过滤。我做错了什么吗?我仍然无法弄清楚。请帮忙。非常感谢你。
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
jq'ssplit需要一个参数,该参数必须是有效的 JSON 字符串。在您的情况下,您可能想splits改用它,因为它需要一个正则表达式参数。但是,splits会产生一个流,因此您可能想按照以下方式编写一些内容:
.value[]
| { "id": [.["subject"] | splits(" *")][-1],
"date": .receivedDateTime }
添加回答
举报
0/150
提交
取消