【发布时间】:2018-02-26 21:58:26
【问题描述】:
我正在尝试从 JSON 转储中提取“登录”的值,该转储采用文本 (response.text) 形式
这是字符串:
{
"name":"master",
"commit":{
"sha":"adc3208a9ac76262250a",
"commit":{
"author":{
"name":"root",
"email":"dan.ja@foo.ca",
"date":"2018-02-26T20:14:41Z"
},
"committer":{
"name":"GitHub Enterprise",
"date":"2018-02-26T20:14:41Z"
},
"message":"Update README.md",
"tree":{
"sha":"3e4710d0e021a0a7",
"comment_count":0,
"verification":{
"verified":false,
"reason":"unsigned",
"signature":null,
"payload":null
}
},
"author":{
"login":"kyle",
"id":5
}
我只是想从最后一行的登录中提取值“kyle”。 'kyle' 的值可以改变,因为它每次都可以是不同的登录名。因此我需要 "login":"string"
中的字符串这就是我现在所拥有的,但这只会让我“登录”:
/"login"[^\a]*"/g
【问题讨论】:
-
你为什么要使用正则表达式呢?为什么不用
data = response.json()解析成Python 然后用data['commit']['author']['login']? -
使用
json.load或json.loads将字符串变成python字典。 -
如果你必须使用正则表达式,试试
/"login"\s*:\s*"(?P<login>.*)"/g。 -
感谢@DanielRoseman,您的解决方案有效且非常优雅!没想到
标签: python regex python-3.x