Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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 使用请求从端点抓取JSON_Python_Json_Web Scraping_Python Requests_Endpoint - Fatal编程技术网

Python 使用请求从端点抓取JSON

Python 使用请求从端点抓取JSON,python,json,web-scraping,python-requests,endpoint,Python,Json,Web Scraping,Python Requests,Endpoint,1) 我想使用python从端点(例如:)中删除JSON文件。我已经安装了Python请求,并尝试将页面下载到如下变量: import requests r = requests.get('http://stats.nba.com/stats/boxscoreplayertrackv2/? GameID=0021700300') 我曾在一些常规网页上尝试过这种方法,但对于这个端点,它不起作用。当我发送请求时,pythonshell基本上停止工作,我必须重新启动它。我相信这必须有一个非常原始的解

1) 我想使用python从端点(例如:)中删除JSON文件。我已经安装了Python请求,并尝试将页面下载到如下变量:

import requests
r = requests.get('http://stats.nba.com/stats/boxscoreplayertrackv2/?
GameID=0021700300')
我曾在一些常规网页上尝试过这种方法,但对于这个端点,它不起作用。当我发送请求时,pythonshell基本上停止工作,我必须重新启动它。我相信这必须有一个非常原始的解决方案

请问,我怎样才能下载它

2) 在这之后,我想使用html/JSON并删除开头的一些代码和结尾的一些代码,这样它将保留唯一一段JSON,可以传输到表(Excel或db表)。我的最终目标是使这个过程自动化,这样脚本每天都会下载一些新的JSON(只需要增加URL中的参数数量),修改它们并以增量方式将它们传输到现有的表/excel

你能告诉我怎么做这些步骤吗?我只是想处理一些数据,这似乎是获取数据的最佳方式。
我是Python新手,在编程方面我只有一些基础知识,所以请原谅我的原始问题。如果有什么小建议,我将不胜感激

看起来您需要添加几个标题,然后您可以像平常一样访问json,例如

import requests
import json

headers={'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0', 'Accept': 'application/json; charset=utf-8'}
r = requests.get('https://stats.nba.com/stats/boxscoreplayertrackv2/?GameID=0021700300', headers=headers)

j =r.json()

for row in j['resultSets']:
    print (row['name'])
    for rowSet in row['rowSet']:
        print (rowSet)
产出:

PlayerStats
['0021700300', 1610612764, 'WAS', 'Washington', 203490, 'Otto Porter Jr.', 'F', '', '32:05', 4.22, 2.25, 5, 11, 16, 48, 0, 0, 28, 0, 2, 4, 0.5, 6, 14, 0.428, 0.444, 0, 0, 0.0]
['0021700300', 1610612764, 'WAS', 'Washington', 202693, 'Markieff Morris', 'F', '', '20:39', 3.81, 1.31, 3, 4, 7, 30, 0, 0, 19, 1, 1, 2, 0.5, 0, 4, 0.0, 0.167, 2, 4, 0.5]
...
['0021700300', 1610612750, 'MIN', 'Minnesota', 201952, 'Jeff Teague', '', 'DNP - Injury/Illness                    ', '0:00', 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0, 0, 0.0]
TeamStats
['0021700300', 1610612764, 'Wizards', 'WAS', 'Washington', '240:00', 16.74, 29, 60, 89, 399, 4, 0, 287, 23, 14, 31, 0.452, 22, 52, 0.422, 0.434, 12, 21, 0.57]
['0021700300', 1610612750, 'Timberwolves', 'MIN', 'Minnesota', '240:00', 16.58, 30, 53, 83, 407, 1, 1, 296, 27, 18, 37, 0.485, 17, 48, 0.353, 0.412, 12, 18, 0.667]
或写入csv(用于Excel):

import requests
import json
import csv

headers={'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0', 'Accept': 'application/json; charset=utf-8'}
r = requests.get('https://stats.nba.com/stats/boxscoreplayertrackv2/?GameID=0021700300', headers=headers)

j =r.json()

with open( "test.csv", 'w' ) as out_file:
    csv_w = csv.writer( out_file )
    for row in j['resultSets']:
        csv_w.writerow ([row['name']])
        for rowSet in row['rowSet']:
            csv_w.writerow (rowSet)