Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python调用API中使用正则表达式清除返回_Python_Regex - Fatal编程技术网

在python调用API中使用正则表达式清除返回

在python调用API中使用正则表达式清除返回,python,regex,Python,Regex,以下Python脚本: def lookup(guildname): try: guildname = gw2api.get_guild_details(guildid) return guildname except: return'' 返回如下所示的结果:(每个结果都是单行) 使用正则表达式我想我可以得到公会的名字 ([A-Z0-9a-z-]*\b [A-Z0-9a-z-]*) 但是如何将其应用于上述python脚本?它只需

以下Python脚本:

def lookup(guildname):
    try:
        guildname = gw2api.get_guild_details(guildid)
        return guildname
    except:
        return''
返回如下所示的结果:(每个结果都是单行)

使用正则表达式我想我可以得到公会的名字

([A-Z0-9a-z-]*\b [A-Z0-9a-z-]*)
但是如何将其应用于上述python脚本?它只需要返回唯一的公会名称,如月光之玫瑰标志和炼金术公司,而不是那个巨大的区块。我不确定我的表达是否正确

使用适当的功能编辑:

import json, gw2api

getguild = gw2api.get_servers()
guildapi = json.dumps(getguild)
apiresult = json.loads(guildapi)

print apiresult['name']
使用,然后将其作为普通词典访问。不需要正则表达式:

import json
...
return json.loads(guildname)

thedict = the_one_returned
print thedict['guild_name']
# Prints Ready And Willing Knights
使用,然后将其作为普通词典访问。不需要正则表达式:

import json
...
return json.loads(guildname)

thedict = the_one_returned
print thedict['guild_name']
# Prints Ready And Willing Knights
您可以使用,它将安全地将这些字符串转换为dict对象,然后您可以从该dict获取任何密钥:

演示:

>>> from ast import literal_eval
>>> strs = "{u'emblem': {u'foreground_secondary_color_id': 443, u'foreground_primary_color_id': 584, u'foreground_id': 107, u'background_id': 27, u'flags': [], u'background_color_id': 11}, u'guild_id': u'4FAEB34C-BA01-49C8-AD19-C651D69F9981', u'tag': u'RAWK', u'guild_name': u'Ready And Willing Knights'}"
>>> dic = literal_eval(strs)
>>> dic[u'guild_name']
u'Ready And Willing Knights'
您可以使用,它将安全地将这些字符串转换为dict对象,然后您可以从该dict获取任何密钥:

演示:

>>> from ast import literal_eval
>>> strs = "{u'emblem': {u'foreground_secondary_color_id': 443, u'foreground_primary_color_id': 584, u'foreground_id': 107, u'background_id': 27, u'flags': [], u'background_color_id': 11}, u'guild_id': u'4FAEB34C-BA01-49C8-AD19-C651D69F9981', u'tag': u'RAWK', u'guild_name': u'Ready And Willing Knights'}"
>>> dic = literal_eval(strs)
>>> dic[u'guild_name']
u'Ready And Willing Knights'