我如何读取json文件到python



我是JSON和Python的新手,任何关于这方面的帮助都将非常感谢。

我读过json。加载,但我很困惑

如何使用json.loads将文件读取到Python中?

下面是我的JSON文件格式:

{
        "header": {
        "platform":"atm"
        "version":"2.0"
       }
        "details":[
       {
        "abc":"3"
        "def":"4"
       },
       {
        "abc":"5"
        "def":"6"
       },
       {
        "abc":"7"
        "def":"8"
       }    
      ]
    }

我的要求是详细读取所有"abc" "def"的值,并将其添加到像[(1,2),(3,4),(5,6),(7,8)]这样的新列表中。新列表将用于创建一个spark数据框架。

打开文件,获取文件句柄:

fh = open('thefile.json')

https://docs.python.org/2/library/functions.html开放

然后,将文件句柄传递给json.load():(不要使用load -那是针对字符串的)

import json
data = json.load(fh)

https://docs.python.org/2/library/json.html json.load

从这里,您可以轻松地处理表示json编码数据的python字典。

new_list = [(detail['abc'], detail['def']) for detail in data['details']]

注意你的JSON格式也是错误的。在很多地方都需要逗号分隔符,但这不是问题所在。

我尽我所能理解你的问题,但看起来它的格式很差。

首先你的json blob不是有效的json,它缺少相当多的逗号。这可能就是你要找的:

{
    "header": {
        "platform": "atm",
        "version": "2.0"
    },
    "details": [
        {
            "abc": "3",
            "def": "4"
        },
        {
            "abc": "5",
            "def": "6"
        },
        {
            "abc": "7",
            "def": "8"
        }
    ]
}

现在假设你正在尝试用python解析它,你必须做以下操作:

import json
json_blob = '{"header": {"platform": "atm","version": "2.0"},"details": [{"abc": "3","def": "4"},{"abc": "5","def": "6"},{"abc": "7","def": "8"}]}'
json_obj = json.loads(json_blob)
final_list = []
for single in json_obj['details']:
    final_list.append((int(single['abc']), int(single['def'])))
print(final_list)

这将打印以下:[(3、4),(5、6),(7、8)]

相关内容

  • 没有找到相关文章

最新更新