Python 从字符串中获取ID
我有一个字符串,我想从中获取“id”编号Python 从字符串中获取ID,python,Python,我有一个字符串,我想从中获取“id”编号12079500908。我试图使用ast.literal\u eval,但收到ValueError:格式错误的字符串。是否有其他方法从下面的字符串中获取id编号 doc_request = urllib2.Request("https://api.box.com/2.0/search?query=SEARCHTERMS", headers=doc_headers) doc_response = urllib2.urlopen(doc_request) vi
12079500908
。我试图使用ast.literal\u eval
,但收到ValueError:格式错误的字符串
。是否有其他方法从下面的字符串中获取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)
编辑
输出:
调用doc\u dict
给出:
ValueError: malformed string
ast.literal\u eval
用于解析有效的Python语法,您拥有的是JSON。有效的JSON看起来很像Python语法,只是JSON可以包含null
、true
和false
,当通过JSON解码器传递时,在Python中映射到None
、true
和false
。你可以用这个。代码可能如下所示:
import json
doc_dict = json.loads(view_doc_response)
first_id = doc_dict['entries'][0]['id'] # with your data, should be 12079500908
请注意,这假设您在字符串末尾手动添加了
…
,可能是在缩短字符串之后。如果…
实际上也在您的代码中,那么您的JSON无效,您需要进行一些处理才能正常工作。您可以显示您正在使用的确切代码行吗?您注意到最后的“…”了吗?您的源数据已损坏。是否可以获取完整字符串而不是此截断字符串?好的,我将发布完整字符串。我将发布我使用的确切代码。这个字符串是从哪里来的?它是由repr
生成的吗?如果没有,则不应在其上使用literal\u eval
。(如果它是由repr
生成的,但您正在编写生成它的代码…请不要使用repr
和literal\u eval
)谢谢。。你做到了。我不知道我有一个JSON。我以为那只是一根绳子。我会在几分钟内接受答案。谢谢@Django新手:如果它“只是一个字符串”,为什么您希望literal\u eval
能够处理它?它必须是某种格式,处理任何格式的第一个关键总是要找出它是什么格式…
import json
doc_dict = json.loads(view_doc_response)
first_id = doc_dict['entries'][0]['id'] # with your data, should be 12079500908