【发布时间】:2017-07-05 19:58:05
【问题描述】:
我尝试从这个 json 中获取所有纬度和经度。
代码:
import urllib.parse
import requests
raw_json = 'http://live.ksmobile.net/live/getreplayvideos?userid='
print()
userid = 735890904669618176
#userid = input('UserID: ')
url = raw_json + urllib.parse.urlencode({'userid=': userid}) + '&page_size=1000'
print(url)
json_data = requests.get(url).json()
print()
for coordinates in json_data['data']['video_info']:
print(coordinates['lat'], coordinates['lnt'])
print()
错误:
/usr/bin/python3.6 /media/anon/3D0B8DD536C9574F/PythonProjects/getLocation/getCoordinates
http://live.ksmobile.net/live/getreplayvideos?userid=userid%3D=735890904669618176&page_size=1000
Traceback (most recent call last):
File "/media/anon/3D0B8DD536C9574F/PythonProjects/getLocation/getCoordinates", line 17, in <module>
for coordinates in json_data['data']['video_info']:
TypeError: list indices must be integers or slices, not str
Process finished with exit code 1
我哪里出错了?
提前感谢您的帮助和时间。
我只是发布一些 json 来展示它的样子。 json 看起来像这样:
{
"status": "200",
"msg": "",
"data": {
"time": "1499275646",
"video_info": [
{
"vid": "14992026438883533757",
"watchnumber": "38",
"topicid": "0",
"topic": "",
"vtime": "1499202678",
"title": "happy 4th of july",
"userid": "735890904669618176",
"online": "0",
"addr": "",
"isaddr": "2",
"lnt": "-80.1282576",
"lat": "26.2810628",
"area": "A_US",
"countryCode": "US",
"chatSystem": "1",
},
完整的json:https://pastebin.com/qJywTqa1
【问题讨论】:
-
json_data必须是字典列表。所以第一个[]参数需要是切片或整数... -
…或者它是一个字典,但它的组件不是。我相信是这样的。
-
没有关于您的数据的一些信息,很难说。请在此处发布您的 json 数据。
-
好的,我刚做了:)
-
看起来你发布的代码和你运行的代码不一样。回溯指向一行
for coordinates in json_data['data']['video_i']:video_i是什么?它不在您的来源中。
标签: python json python-3.x