Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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 3.5.2解析URL中的JSON字符串_Python - Fatal编程技术网

使用Python 3.5.2解析URL中的JSON字符串

使用Python 3.5.2解析URL中的JSON字符串,python,Python,我正在尝试从JSON打印值lat和lon: { 批处理完成:, 查询:{ 标准化:[ { 发信人:威尼斯, 致:威尼斯 } ], 页码:{ 32616: { 坐标:[ { 地球:地球, 拉脱维亚:45.4375, 伦敦:12.33583333, 主要: } ], ns:0, 页码:32616, 标题:威尼斯 } } } } 这是我应该使用的代码: import urllib.request as url import json import urllib.parse import ast re

我正在尝试从JSON打印值lat和lon:

{ 批处理完成:, 查询:{ 标准化:[ { 发信人:威尼斯, 致:威尼斯 } ], 页码:{ 32616: { 坐标:[ { 地球:地球, 拉脱维亚:45.4375, 伦敦:12.33583333, 主要: } ], ns:0, 页码:32616, 标题:威尼斯 } } } } 这是我应该使用的代码:

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:列表索引必须是整数或片,而不是str。

您在某处有一个字典列表。你能展示一个最小的数组吗?你甚至不需要json模块,只需要使用r.json。非常感谢,它工作得非常好。但我面临另一个问题。我没有把JSON文档[32616]的第三个值看作是一个动态变量,它是Page Syd。你知道我如何用Python 3X解析动态密钥的JSON文档吗?对于RDATA([查询] ]中的页面[页面]:谢谢,我看到了我的错误。没有考虑[ 0 ]!它工作得很好。但我面临另一个问题。我没有把JSON文档[32616]的第三个值看作是一个动态变量,它是PaGyId。你知道我如何处理Python 3X中的动态键吗?你可以简单地在数组[[ Que] ] [[页面] ]中循环元素,类似于:关键字,数组中的值[查询] [[页] ]。然后你可以得到值['coordinates'][0]['lat']和['lon']。我不知道怎样才能给你星星作为加分。
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'])