繁体   English   中英

使用Python 3.5.2从URL解析JSON字符串

[英]Parsing JSON string from URL with Python 3.5.2

我正在尝试从JSON( )打印出值"lat""lon"

{
    "batchcomplete": "",
    "query": {
        "normalized": [
            {
                "from": "venice",
                "to": "Venice"
            }
        ],
        "pages": {
            "32616": {
                "coordinates": [
                    {
                        "globe": "earth",
                        "lat": 45.4375,
                        "lon": 12.33583333,
                        "primary": ""
                    }
                ],
                "ns": 0,
                "pageid": 32616,
                "title": "Venice"
            }
        }
    }
}

这是我应该工作的代码:

import urllib.request as url
import json
import urllib.parse
import ast

request = url.Request('https://en.wikipedia.org/w/api.php?action=query&format=json&prop=coordinates&list=&titles=venice')
data = url.urlopen(request).read()
data = data.decode("utf-8")
data = ast.literal_eval(data)
data = json.dumps(data)
array = json.loads(data)
#print(array)
print(array['query']['pages']['32616']['coordinates']['lat'+','+'lon'])

它返回错误: TypeError: list indices must be integers or slices, not str

print(array['query']['pages']['32616']['coordinates'][0]['lat'])
print(array['query']['pages']['32616']['coordinates'][0]['lon'])
                                               insert ^
import requests
import json

r = requests.get('you URL here')
rData = json.loads(r.text, encoding="utf-8")

print(rData['query']['pages']['32616']['coordinates'][0]['lat'])
print(rData['query']['pages']['32616']['coordinates'][0]['lon'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM