猿问

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

我正在尝试使用.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 进行过滤。


我做错了什么吗?我仍然无法弄清楚。请帮忙。非常感谢你。


当年话下
浏览 120回答 1
1回答

GCT1015

jq'ssplit需要一个参数,该参数必须是有效的 JSON 字符串。在您的情况下,您可能想splits改用它,因为它需要一个正则表达式参数。但是,splits会产生一个流,因此您可能想按照以下方式编写一些内容:.value[]| { "id": [.["subject"] | splits("  *")][-1],    "date": .receivedDateTime }
随时随地看视频慕课网APP

相关分类

Python
我要回答