为了账号安全,请及时绑定邮箱和手机立即绑定

尝试拆分行以选择最后一个单词时出现pyjq错误

尝试拆分行以选择最后一个单词时出现pyjq错误

当年话下 2021-08-05 17:18:50
我正在尝试使用.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 }


查看完整回答
反对 回复 2021-08-05
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信