【问题标题】:Python parsing using JSON for use with seleium使用 JSON 进行 Python 解析以与 selenium 一起使用
【发布时间】:2015-07-20 13:12:16
【问题描述】:

我正在尝试编写一个 python 脚本,它将读取一个 JSON 文件,目的是显示有多少屏幕可用并能够提取不同 json 字段的值

JSON

   {
    "screen": [
        {
            "id": "1",
            "user": "user1@example.com",
        "password": "letmein",
        "code": "123456"
        },
        {
            "id": "2",
            "user": "user2@example.com",
        "password": "letmein",
        "code": "123455"
        },
        {
            "id": "3",
            "user": "user3@example.com",
        "password": "letmein",
        "code": "223456"
        }
    ]
}

Python

import json
from pprint import pprint

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

#json_file.close()


pprint(data)

data["screen"][0]["id"]

正如您从 python 脚本中看到的,我可以成功打印出 json 文件是 pprint,但是当我尝试打印出单个值时,我卡住了

我在这里做错了吗?

我希望以后能够在 python 脚本中使用 json 文件中的所有值作为变量,以便能够与 selenium 一起使用这些值打开网页?

【问题讨论】:

    标签: python json parsing selenium scripting


    【解决方案1】:

    我测试了您的示例代码,它运行良好。看起来您只是忘记实际打印最后一行中的值。那就是:

    data["screen"][0]["id"]
    

    应该是

    pprint(data["screen"][0]["id"])
    

    当我尝试它时会打印u'1'

    【讨论】:

    • 还有:data.get("screen")[0]["id"]
    • 是的,这也可以。但是这些元素也可以作为普通数组访问。
    • 如何在没有 u' 的情况下从一个部分打印所有值?谢谢
    • 使用 for 循环。 :) u 是因为它是 unicode,请参阅此处的文档:docs.python.org/2/howto/unicode.html
    • 当然这是 unicode,所以当我使用它时它并不重要,因此我可以使用 print data["screen"][1]["user"] 来计算json 值我可以使用 print len (data['screen'])
    猜你喜欢
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2016-05-13
    • 2012-04-06
    相关资源
    最近更新 更多