我第一次使用Python创建一个简单的JSON解析器。但是,在将JSON数据打印到控制台时,它包含许多多余的括号和其他不需要的符号。我也在运行Python 2.7.10。
import json
from urllib2 import urlopen
response = urlopen("https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json")
source = response.read()
# print(source)
data = json.loads(source)
# print(json.dumps(data, indent=2))
usd_rates = dict()
for item in data['list']['resources']:
name = item['resource']['fields']['name']
price = item['resource']['fields']['price']
usd_rates[name] = price
print(name, price)
输出如下:
当我尝试将python版本更改为3.7.10时:
答案 0 :(得分:2)
我认为您实际上是在使用python 2 touch .gitignore
语法打印一个元组,而print
字符是一个unicode标志(What exactly do "u" and "r" string flags do, and what are raw string literals?)。
同样在python 3中,您不能使用u
,但必须使用urllib2
。
此代码对我有效(python 3.6.5):
urllib.request
编辑---------
从您发布的图像看来,您已经安装了python 3,但是您的import json
from urllib.request import urlopen
response = urlopen("https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json")
source = response.read()
data = json.loads(source)
usd_rates = dict()
for item in data['list']['resources']:
name = item['resource']['fields']['name']
price = item['resource']['fields']['price']
usd_rates[name] = price
print(name, price)
是指向usr/bin/python
的符号链接。
如果要默认运行python 3,则可以创建一个别名。 检查此链接以获取更多信息https://askubuntu.com/questions/320996/how-to-make-python-program-command-execute-python-3 (对于Mac也是有效信息)
答案 1 :(得分:-2)
将名称和价格转换为字符串
print(str(name), str(price))
或 使用
name = str(item['resource']['fields']['name'])