如何在 string/json - Python/JSON 中的括号 { } 之间搜索某个词
How to search for a certain term between brackets { } in a string/json - Python/JSON
import json
import requests
import sys
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
response = requests.get(exampleURL)
if response.status_code==200:
questData = response.content.decode('utf-8')
我如何搜索 questName 并让它只打印这个 {"title":"All Fired Up","status":"COMPLETED","difficulty":1,"members":true,"questPoints":1,"userEligible":true}
抱歉格式不正确,感谢您的帮助,谢谢!
根据评论实施 Blender 的建议,将这些行添加到您已有的代码下方:
data = json.loads(questData)
for quest in data['quests']:
if quest['title'] == questName:
print quest
将获得:
{u'status': u'COMPLETED', u'title': u'All Fired Up', u'userEligible': True, u'difficulty': 1, u'members': True, u'questPoints': 1}
这是我的看法:
import requests
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
response = requests.get(exampleURL)
if response.status_code==200:
questData = next((i for i in response.json()['quests'] if i['title']== questName),None)
print(questData)
Returns:
{'difficulty': 1,
'members': True,
'questPoints': 1,
'status': 'COMPLETED',
'title': 'All Fired Up',
'userEligible': True}
更新:
import requests
from collections import OrderedDict
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
keys = ['title','status','difficulty','members','questPoints','userEligible']
response = requests.get(exampleURL)
if response.status_code==200:
questData = next((i for i in response.json()['quests'] if i['title']== questName),None)
d = OrderedDict((key,questData.get(key,'')) for key in keys)
print(d)
import json
import requests
import sys
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
response = requests.get(exampleURL)
if response.status_code==200:
res = response.json()
for y in res['quests']:
if(y["title"] == questName):
print(y)
import json
import requests
import sys
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
response = requests.get(exampleURL)
if response.status_code==200:
questData = response.content.decode('utf-8')
我如何搜索 questName 并让它只打印这个 {"title":"All Fired Up","status":"COMPLETED","difficulty":1,"members":true,"questPoints":1,"userEligible":true}
抱歉格式不正确,感谢您的帮助,谢谢!
根据评论实施 Blender 的建议,将这些行添加到您已有的代码下方:
data = json.loads(questData)
for quest in data['quests']:
if quest['title'] == questName:
print quest
将获得:
{u'status': u'COMPLETED', u'title': u'All Fired Up', u'userEligible': True, u'difficulty': 1, u'members': True, u'questPoints': 1}
这是我的看法:
import requests
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
response = requests.get(exampleURL)
if response.status_code==200:
questData = next((i for i in response.json()['quests'] if i['title']== questName),None)
print(questData)
Returns:
{'difficulty': 1,
'members': True,
'questPoints': 1,
'status': 'COMPLETED',
'title': 'All Fired Up',
'userEligible': True}
更新:
import requests
from collections import OrderedDict
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
keys = ['title','status','difficulty','members','questPoints','userEligible']
response = requests.get(exampleURL)
if response.status_code==200:
questData = next((i for i in response.json()['quests'] if i['title']== questName),None)
d = OrderedDict((key,questData.get(key,'')) for key in keys)
print(d)
import json
import requests
import sys
exampleURL = 'https://apps.runescape.com/runemetrics/quests?user=Marebelle'
questName = 'All Fired Up'
response = requests.get(exampleURL)
if response.status_code==200:
res = response.json()
for y in res['quests']:
if(y["title"] == questName):
print(y)