我已经成功地编写了一个脚本,从json文件中提取信息,并以我可以使用的方式解析它,但我现在必须手动打印每个字符串。如果可能的话,我想循环一下,但是我想从哪里开始呢?
Python
from __future__ import print_function
import json
import sys
from pprint import pprint
with open('screen.json') as data_file:
data = json.load(data_file)
#json_file.close()
# Print all json data
#pprint(data)
#screen_list = data['screen']
print ("Screens availble",len (data['screen']))
#pprint(data["screen"][1]["id"])
#pprint(data["screen"][1]["user"])
#pprint(data["screen"][1]["password"])
#pprint(data["screen"][1]["code"])
#How to loop this
print ("https://",data["screen"][0]["server"],"/test/test.php?=",data["screen"][0]["code"],sep='')
print ("https://",data["screen"][1]["server"],"/test/test.php?=",data["screen"][1]["code"],sep='')
print ("https://",data["screen"][2]["server"],"/test/test.php?=",data["screen"][2]["code"],sep='')JSON
{
"screen": [
{
"id": "1",
"user": "user1@example.com",
"password": "letmein",
"code": "123456",
"server": "example.com"
},
{
"id": "2",
"user": "user2@example.com",
"password": "letmein",
"code": "123455",
"server": "example.com"
},
{
"id": "3",
"user": "user3@example.com",
"password": "letmein",
"code": "223456",
"server": "example.com"
}
]
}发布于 2015-05-09 20:43:39
您可以遍历dicts列表:
for d in data["screen"]:
print ("https://",d["server"],"/test/test.php?=",d["code"],sep='')退出:
https://example.com/test/test.php?=123456
https://example.com/test/test.php?=123455
https://example.com/test/test.php?=223456发布于 2015-05-09 20:43:57
您已经将data['screen']提取到一个名为screen_list的变量中。这个变量是一个list,所以您可以和其他列表一样使用它--调用它上的len、索引它或在上面循环。所以:
screen_list = data['screen']
print("Screens availble", len(screen_list))
for screen in screen_list:
pprint(screen['id'])
pprint(screen['user'])
pprint(screen['password'])
pprint(screen['code'])下面,再循环一遍:
for screen in screen_list:
print("https://", screen["server"], "/test/test.php?=", screen["code"], sep='')(我假设你想打印出所有屏幕的信息,然后打印出所有的URL。如果您想在打印信息的同时打印每个URL,只需将它们合并到一个循环中。)
顺便提一下,这是学习字符串格式的好时机。如果您想使用这些URL,例如,将它们传递给urllib2或requests,您不能只打印出来,您必须将它们转换成字符串。即使您只是想打印出来,格式化通常更容易阅读,更难出错。所以:
print("https://{}/test/test.php?={}".format(screen["server"], screen["code"]))…或…
print("https://{server}/test/test.php?={code}".format(**screen))https://stackoverflow.com/questions/30144774
复制相似问题