从字符串中获取ID

 唯爱天使之诺言 发布于 2023-02-10 15:01

我有一个字符串,我想抓住"id"号码12079500908.我正在尝试使用ast.literal_eval但收到了一个ValueError: malformed string.有没有其他方法可以id从下面的字符串中获取数字?

doc_request = urllib2.Request("https://api.box.com/2.0/search?query=SEARCHTERMS", headers=doc_headers)
doc_response = urllib2.urlopen(doc_request)
view_doc_response = doc_response.read()
doc_dict=ast.literal_eval(view_doc_response)

编辑 输出:

view_doc_response = '{"total_count":1,"entries":[{"type":"file","id":"12079500908","sequence_id":"1","etag":"1","sha1":"6887169228cab0cfb341059194bc980e1be8ad90","name":"file.pdf","description":"","size":897838,"path_collection":{"total_count":2,"entries":[{"type":"folder","id":"0","sequence_id":null,"etag":null,"name":"All Files"},{"type":"folder","id":"1352745576","sequence_id":"0","etag":"0","name":"Patient Files"}]},"created_at":"2013-12-03T10:23:30-08:00","modified_at":"2013-12-03T11:17:52-08:00","trashed_at":null,"purged_at":null,"content_created_at":"2013-12-03T10:23:30-08:00","content_modified_at":"2013-12-03T11:17:52-08:00","created_by":{"type":"user","id":"20672372","name":"name","login":"email"},"modified_by":{"type":"user","id":"206732372","name":"name","login":"email"},"owned_by":{"type":"user","id":"206737772","name":"name","login":"email"},"shared_link":{"url":"https:\\/\\/www.box.net\\/s\\/ymfslf1phfqiw65bunjg","download_url":"https:\\/\\/www.box.net\\/shared\\/static\\/ymfslf1phfqiw65bunjg.pdf","vanity_url":null,"is_password_enabled":false,"unshared_at":null,"download_count":0,"preview_count":0,"access":"open","permissions":{"can_download":true,"can_preview":true}},"parent":{"type":"folder","id":"1352745576","sequence_id":"0","etag":"0","name":"Patient Files"},"item_status":"active"}],"limit":30,"offset":0}'

打电话doc_dict给:

ValueError: malformed string

Andrew Clark.. 7

ast.literal_eval用于解析有效的Python语法,你拥有的是JSON.有效的JSON看起来很像,除了JSON Python语法可以包含null,truefalse其分别对应的None,True以及False在Python当通过JSON解码器通过.你可以用json.loads它.代码可能如下所示:

import json
doc_dict = json.loads(view_doc_response)
first_id = doc_dict['entries'][0]['id']  # with your data, should be 12079500908

请注意,这假设您手动添加...了字符串的末尾,可能是在缩短它之后.如果那...实际上在你的代码中,那么你有无效的JSON,你需要做一些处理才能工作.

1 个回答
  • ast.literal_eval用于解析有效的Python语法,你拥有的是JSON.有效的JSON看起来很像,除了JSON Python语法可以包含null,truefalse其分别对应的None,True以及False在Python当通过JSON解码器通过.你可以用json.loads它.代码可能如下所示:

    import json
    doc_dict = json.loads(view_doc_response)
    first_id = doc_dict['entries'][0]['id']  # with your data, should be 12079500908
    

    请注意,这假设您手动添加...了字符串的末尾,可能是在缩短它之后.如果那...实际上在你的代码中,那么你有无效的JSON,你需要做一些处理才能工作.

    2023-02-10 15:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有