将 json 对象下载为 json 文件的方法 python
Method to download json object as json file python
我正在尝试从此 json bitcoin api
中提取数据
存储在 json 文件中。首先我尝试了
import urllib, json
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
response = urllib.urlopen(url)
data = json.loads(response.read())
print data
它起初有效,但如果我再次 运行 它,我会收到此错误:
Traceback (most recent call last):
File "btc_api.py", line 4, in <module>
data = json.loads(response.read())
File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
我必须定期 运行 代码以获取最新的货币并将其存储在数据库中。有人可以帮我解决这个问题或任何想法如何做得更好吗?
您可以使用 requests
和 json
它提供的方法:
import requests
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
data = requests.get(url).json()
尽管如果您仍想使用 urllib
,请使用 json.load
:
import urllib
import json
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
response = urllib.urlopen(url)
data = json.load(response)
我正在尝试从此 json bitcoin api
中提取数据存储在 json 文件中。首先我尝试了
import urllib, json
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
response = urllib.urlopen(url)
data = json.loads(response.read())
print data
它起初有效,但如果我再次 运行 它,我会收到此错误:
Traceback (most recent call last):
File "btc_api.py", line 4, in <module>
data = json.loads(response.read())
File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
我必须定期 运行 代码以获取最新的货币并将其存储在数据库中。有人可以帮我解决这个问题或任何想法如何做得更好吗?
您可以使用 requests
和 json
它提供的方法:
import requests
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
data = requests.get(url).json()
尽管如果您仍想使用 urllib
,请使用 json.load
:
import urllib
import json
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
response = urllib.urlopen(url)
data = json.load(response)