使用python的JSON输出,包括不需要的符号

时间:2018-07-04 10:41:34

标签: python json python-2.7

我第一次使用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)

输出如下:

enter image description here

当我尝试将python版本更改为3.7.10时:

enter image description here

2 个答案:

答案 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'])