我想在python 3中从这个页面获取实时引号 link
此处的引号存储在数组" JsonData"中的json文件中 我想获取存储在json文件中的LTP中的值
from urllib.request import urlopen
import json
url = ("https://ewmw.edelweiss.in/api/Market/Process/GetFutureValue/BANKNIFTY/05%20Apr%202018")
response = urlopen(url)
data = response.read().decode("utf-8")
y = json.loads(data['JsonData'])
print(y)
答案 0 :(得分:0)
替换
y = json.loads(data['JsonData'])
与
y = json.loads(data.decode('string-escape').strip('"'))
print(y) #And then access the required variable.
print(y["JsonData"])
注意:您的数据已转义。这就是我使用.decode('string-escape').strip('"')
答案 1 :(得分:0)
你可以试试:
但在使用eval()之前,请从NedBat
中读取此postfrom urllib.request import urlopen
import json
import ast
url = ("https://ewmw.edelweiss.in/api/Market/Process/GetFutureValue/BANKNIFTY/05%20Apr%202018")
response = urlopen(url)
data = response.read().decode("utf-8")
load_data= ast.literal_eval(data)
convert_to = json.loads(load_data)
print(convert_to['JsonData'])
输出:
{'LTP': '24339.3', 'ChgPer': '-0.68', 'ArticleUrl': '', 'Url': '/quotes/index-future/BANKNIFTY~2018-04-26', 'CoCode': 'BANKNIFTY', 'Date': '2018-04-26T00:00:00', 'Chg': '-165.55'}
答案 2 :(得分:0)
你可以按照下面的建议使用eval,但这真的不是一件好事。所以你可以这样做:
import requests, json
r = requests.get('https://ewmw.edelweiss.in/api/Market/Process/GetFutureValue/BANKNIFTY/05%20Apr%202018').json()
data = json.loads(r)
print(data['JsonData'])
或者,如果你坚持使用urllib,那么只需添加另一个y = json.loads(y)
,这不是一个好的解决方案,所以你想稍后更改,但比eval好一点。完整代码:
from urllib.request import urlopen
import json
url = ("https://ewmw.edelweiss.in/api/Market/Process/GetFutureValue/BANKNIFTY/05%20Apr%202018")
response = urlopen(url)
data = response.read().decode("utf-8")
y = json.loads(data)
y = json.loads(y)
print(y['JsonData'])
如果是我,我会选择第一个,更干净,更短,更好。