Python从JSON文件中获取数据

时间:2018-08-20 19:54:04

标签: python json parsing

我是python的新手。 我正在尝试从data.json文件中提取数据。

如何获取“文件名”和“项目名”? 另外,如何处理数据,“ XX \ XX \ X”是多余的字符串。

期望输出:

File_Names = ih/1/2/3.java
             ihh/11/22/33.java.java
Project_name = android/hello
File_Names = hi/1/2/3.java
             hih/11/22/33.java.java
Project_name = android/helloworld

data.json

{
    "changed": [
        {
            "prev_revision": "a09936ea19ddc9f69ed00a7929ea81234af82b95", 
            "added_commits": [
                {
                    "Lines_Deleted": 28, 
                    "File_Names": [
                        "1\t3\tih/1/2/3.java", 
                        "1\t1\tihh/11/22/33.java.java"
                    ], 
                    "Files_Modified": 8, 
                    "Lines_Inserted": 90
                }
            ], 
            "project_name": "android/hello"
        }, 
       {
            "prev_revision": "a09936ea19ddc9f69ed00a7929ea81234af82b95", 
            "added_commits": [
                {
                    "Lines_Deleted": 28, 
                    "File_Names": [
                        "14\t3\thi/1/2/3.java", 
                        "1\t1\thih/11/22/33.java.java"
                    ], 
                    "Files_Modified": 8, 
                    "Lines_Inserted": 90
                }
            ], 
            "project_name": "android/helloworld"
        }

    ]
}

3 个答案:

答案 0 :(得分:3)

import json,然后使用json.load(open('data.json'))读取文件。它将作为嵌套的python对象层次结构(字典,列表,整数,字符串,浮点数)加载,您可以相应地对其进行解析。

这里可以激发您的想象力并传达您的想法。

import json
x = json.load(open('data.json'))
for sub_dict in x['changed']:
    print('project_name', sub_dict['project_name'])

    for entry in sub_dict['added_commits']:
        print (entry['File_Names'])

答案 1 :(得分:2)

您可以使用这种方法

import json

with open('data.json') as json_file: 
    data = json.loads(json_file)
    for item in data['changed']:
        print(item['project_name'], item['added_commits']['File_Names'])

答案 2 :(得分:1)

您可以在json模块

中使用类似的内容
import json
f = open("file_name.json", "r")
data = f.read()
jsondata = json.loads(data) 
print jsondata # all json file 

print jsondata["changed"] # list after dictionary 

print jsondata["changed"][0] # This will get you all you have in the first occurence within changed
 f.close()

从这里开始,您可以将其与json中想要的任何元素一起使用。