首先,我会自由地承认,只不过是一个笨拙的文科家伙,他在这个脚本编写的东西中完全是自学成才.也就是说,我试图使用以下代码从USGS水资源服务获取价值:
def main(gaugeId):
# import modules
import urllib2, json
# create string
url = "http://waterservices.usgs.gov/nwis/iv/?format=json&sites=" + gaugeId + "¶meterCd=00060,00065"
# open connection to url
urlFile = urllib2.urlopen(url)
# load into local JSON list
jsonList = json.load(urlFile)
# extract and return
# how to get cfs, ft, and zulu time?
return [cfs, ft, time]
Run Code Online (Sandbox Code Playgroud)
虽然我找到了一些关于如何从JSON响应中提取所需值的教程,但大多数都非常简单.我遇到的困难是从这个服务正在返回的非常复杂的响应中提取.通过回答,我可以看到我想要的是两个不同部分的值和时间值.因此,我可以看看响应,看看我需要什么,我不能,为了我的生活,弄清楚如何提取这些值.
{
"status": "200",
"msg": "",
"data": {
"time": "1515580011",
"video_info": [
{
"announcement": "{\"announcement_id\":\"6\",\"name\":\"INS\\u8d26\\u53f7\",\"icon\":\"http:\\\/\\\/liveme.cms.ksmobile.net\\\/live\\\/announcement\\\/2017-08-18_19:44:54\\\/ins.png\",\"icon_new\":\"http:\\\/\\\/liveme.cms.ksmobile.net\\\/live\\\/announcement\\\/2017-10-20_22:24:38\\\/4.png\",\"videoid\":\"15154610218328614178\",\"content\":\"FOLLOW ME PLEASE\",\"x_coordinate\":\"0.22\",\"y_coordinate\":\"0.23\"}",
"announcement_shop": "",
Run Code Online (Sandbox Code Playgroud)
如何从这个json中获取内容"关注我"?
replay_data = raw_replay_data['data']['video_info'][0]
announcement = replay_data['announcement']
Run Code Online (Sandbox Code Playgroud)
这抓住了一切['announcement'],我做不到['announcement']['content'].
这样做的正确方法是什么?
提前谢谢你帮我解决这个问题.