2024-10-01 09:29:07 发布
网友
我有一个字符串作为函数的输出,如下所示:
tmp = <"last seen":1568,"reviews [{"id":15869,"author":"abnbvg","changes":........>
我将如何从中获取"id":15869
"id":15869
数据看起来像一个JSON字符串。用途:
try: import json except ImportError: import simplejson as json tmp = '"last seen":1568,"reviews":[{"id":15869,"author":"abnbvg"}]' data = json.loads('{{{}}}'.format(tmp)) >>> print data {u'reviews': [{u'id': 15869, u'author': u'abnbvg'}], u'last seen': 1568} >>> print data['reviews'][0]['id'] 15869
请注意,我将字符串包装在{和}中以生成字典。如果实际的JSON字符串已经用大括号封装,那么您可能不必这样做
{
}
如果id是字符串中唯一需要的东西,并且它总是类似于{"id":15869,"author":"abnbvg"...,那么您可以使用单字符串拆分而不是json转换
id
{"id":15869,"author":"abnbvg"...
tmp = '"last seen":1568,"reviews" : [{"id":15869,"author":"abnbvg","changes":........' tmp1 = tmp.split('"id":', 1)[1] id = tmp1.split(",", 1)[0]
请注意,tmp1行可能会在字符串中找不到"id"键的情况下引发IndexError。你可以用-1代替1来做侧踏板。但是通过这种方式,您可以报告"id"没有找到
tmp1
"id"
try: tmp1 = tmp.split('"id":', 1)[1] id = tmp1.split(",", 1)[0] except IndexError: print "id key is not present in the json" id = None
如果您确实需要json字符串中的更多变量,请使用mhawke的解决方案,将json转换为dictionary并获取值。你可以使用ast.literal_eval
from ast import literal_eval tmp = '"last seen":1568,"reviews" : [{"id":15869,"author":"abnbvg","changes":........' tmp_dict = literal_eval("""{%s}"""%(tmp)) print tmp_dict["reviews"][0]["id"]
在第二种情况下,如果需要收集列表中的所有"id"键,这将有助于:
id_list =[] for id_dict in tmp_dict["reviews"]: id_list.append(id_dict["id"]) print id_list
字符串内容看起来像JSON,所以要么使用JSON模块,要么使用正则表达式来提取所需的特定字符串
数据看起来像一个JSON字符串。用途:
请注意,我将字符串包装在
{
和}
中以生成字典。如果实际的JSON字符串已经用大括号封装,那么您可能不必这样做如果
id
是字符串中唯一需要的东西,并且它总是类似于{"id":15869,"author":"abnbvg"...
,那么您可以使用单字符串拆分而不是json转换请注意,
tmp1
行可能会在字符串中找不到"id"
键的情况下引发IndexError。你可以用-1代替1来做侧踏板。但是通过这种方式,您可以报告"id"
没有找到如果您确实需要json字符串中的更多变量,请使用mhawke的解决方案,将json转换为dictionary并获取值。你可以使用ast.literal_eval
在第二种情况下,如果需要收集列表中的所有
"id"
键,这将有助于:字符串内容看起来像JSON,所以要么使用JSON模块,要么使用正则表达式来提取所需的特定字符串
相关问题 更多 >
编程相关推荐