在线阅读和写作 JSON

Read and Write JSON online

我正在尝试学习如何读写 json 在线存储,例如 npoint.ioJSONBIN.io。但是看不懂怎么写,网上找的示例代码,自己试总是失败

import json
from urllib.request import urlopen
url = "just say it abcdefg"
response = urlopen(url)
data_json = json.loads(response.read())

写和读我知道怎么做,但是如何从互联网导入怎么办?

您是否试图在浏览器中获取 localStorage 缓存?我不知道是否可以使用 python 如果您只是访问随机 API 因为 localStorage 是特定于浏览器的。在这里查看更多

How could I access localstorage under Python requests

也许尝试使用 selenium 并打开一个新的浏览器。通过使用 selenium 库,您可以从 python 中打开一个新的浏览器,并且您可以更直接地控制您的浏览器。

但是,以 https://randomuser.me/api 为例,您的代码有效并且 JSON 值被获取并存储在 data_json 变量中。

您正在尝试的是 HTTP GET 由您所说的示例网站给出的 url npoint.io

当您使用 urlopen(url) 时,发送的 HTTP 请求没有大多数网站期望的正确/必需 header。例如,像 User-Agent 这样的 header。许多网站出于安全目的阻止此类访问。

您可以通过不同的方式访问 URL。 使用 requests 库 [如果没有,请按 pip install requests 安装。]

url = "https://api.npoint.io/6cb9bb8b8fe2856e5977"
response = requests.get(url).json()

会给你

{'why': ['quick setup', 'easy editing', 'schema validation'], 'what': 'a simple JSON data store'}

如果您想使用 urllib 本身,最好将您的 get 请求设置为像下面这样的正式请求

import urllib, json
# Mock a browser
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'
headers = {'User-Agent': user_agent, }
request = urllib.request.Request(url, None, headers)
response = urllib.request.urlopen(request)
response = json.loads(response.read())

给予

{'why': ['quick setup', 'easy editing', 'schema validation'], 'what': 'a simple JSON data store'}