使用Python解析和打印JSON数据 [英] Parsing and printing JSON data using Python

查看:194
本文介绍了使用Python解析和打印JSON数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是JSON的新手,正在使用Python从JSON数据中提取值.我正在使用另一个带有cURL的shell脚本来获取JSON数据.

I'm new to JSON and I'm working on extracting values from JSON data using Python. I'm getting the JSON data using another shell script with cURL.

这是我从shell脚本(称为test.sh)输出的JSON:

Here is my JSON output from the shell script (Called test.sh):

{"preview":true,"offset":0,"result":{"Country":"AU","count":"417"}}
{"preview":true,"offset":1,"result":{"Country":"BG","count":"7"}}
{"preview":true,"offset":2,"result":{"Country":"CA","count":"198"}}
{"preview":true,"offset":3,"result":{"Country":"CH","count":"1"}}
{"preview":true,"offset":4,"result":{"Country":"CN","count":"3"}}
{"preview":true,"offset":5,"result":{"Country":"CR","count":"1"}}
{"preview":true,"offset":6,"result":{"Country":"DE","count":"148"}}
{"preview":true,"offset":7,"result":{"Country":"DK","count":"1"}}
{"preview":true,"offset":8,"result":{"Country":"FI","count":"1"}}
{"preview":true,"offset":9,"result":{"Country":"FR","count":"1052"}}
{"preview":true,"offset":10,"result":{"Country":"GB","count":"1430"}}
{"preview":true,"offset":11,"result":{"Country":"HK","count":"243"}}
{"preview":false,"offset":12,"lastrow":true,"result":{"Country":"VG","count":"54"}}

我想将所有国家/地区"值和计数"值打印为以下内容:

I want to print all the "Country" values and the "count" values to something like this:

AU 417
BG 7
CA 198
...

为此,我创建了一个循环以获取并打印所有需要的值,但出现此错误:

In order to do so, I created a loop to fetch and print all the needed values but I get this error:

 AttributeError: 'str' object has no attribute 'read'

这是我的python代码:

This is my python code:

import subprocess
import json
import sys
import subprocess
answer = subprocess.check_output(['./test.sh']) #test.sh contains the cURL command
json_obj = json.load(answer)
for i in json_obj['result']:
    print i['Country']
    print i['count']

我在这里想念东西吗?

任何帮助,我们将不胜感激, 非常感谢

Any help would be appreciated, Thank you very much

推荐答案

请将代码保存到test.py,将数据保存到test.json.

Please save the code into test.py and data into test.json.

test.py

import json


with open('/tmp/test.json') as f:
    for i in f:
        data = json.loads(i)
        print("{Country} {count}".format(**data["result"]))

test.json

$ python test.py
AU 417
BG 7
CA 198
CH 1
CN 3
CR 1
DE 148
DK 1
FI 1
FR 1052
GB 1430
HK 243
VG 54


您也可以在编中尝试它:


You can also try it in your prog:

for i in answer:
    data = json.loads(i)
    print("{Country} {count}".format(**data["result"]))

这篇关于使用Python解析和打印JSON数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆