使用python

时间:2016-09-14 14:07:06

标签: python json ioerror

我想使用python

获取以下json文件的输出

Json文件

{
    "Name": [
        {
            "name": "John",
            "Avg": "55.7"
        },
        {
            "name": "Rose",
            "Avg": "71.23"
        },
        {
            "name": "Lola",
            "Avg": "78.93"
        },
        {
            "name": "Harry",
            "Avg": "95.5"
        }
     
    ]
}

当我寻找哈利时,我想得到这个人的平均分数 即我需要以下或类似的格式输出 哈利= 95.5

这是我的代码

import json

json_file = open('test.json')  //the above contents are stored in the json
data = json.load(json_file)
do = data['Name'][0]
op1 = do['Name']
if op1 is 'Harry':
    print do['Avg']

但是当我运行时我得到错误“IOError:[Errno 63]文件名太长了”

3 个答案:

答案 0 :(得分:1)

你可以做这样简单的事情

import json

file = open('data.json')
json_data = json.load(file)

stud_list = json_data['Name']
y = {}
for var in stud_list:
    x = {var['name']: var['Avg']}
    y = dict(list(x.items()) + list(y.items()))

print(y)

它以字典格式提供输出

{' Harry':' 95.5',' Lola':' 78.93',' Rose' :' 71.23',' John':' 55.7'}

答案 1 :(得分:0)

如何使用python 3打印Harry的分数

import json
from pprint import pprint

with open('test.json') as data_file:
    data = json.load(data_file)

for l in data["Name"]:
    if (str(l['name']) == 'Harry'):
        pprint(l['Avg'])

答案 2 :(得分:0)

json.load从文件file-like对象加载数据。如果您想从字符串中读取它,可以使用json.loads