Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我在一个文件夹中有400个json文件,我想用Python创建400个该名称的列表_Python 3.x - Fatal编程技术网

Python 3.x 我在一个文件夹中有400个json文件,我想用Python创建400个该名称的列表

Python 3.x 我在一个文件夹中有400个json文件,我想用Python创建400个该名称的列表,python-3.x,Python 3.x,我在一个文件夹中有400个json文件,我想创建400个该名称的列表。 例如,我有4个json文件:john.json;rick.json;tom.json;sean.json 现在我想用Python创建4个列表,其中包含每个json文件的数据。我想在一个循环中执行此操作您可以将它们放入列表中,但您必须创建并初始化400个列表 更好的方法是将它们放入字典,其中键是文件名,值是数据 import glob, json from datetime import datetime json_dict

我在一个文件夹中有400个json文件,我想创建400个该名称的列表。 例如,我有4个json文件:john.json;rick.json;tom.json;sean.json
现在我想用Python创建4个列表,其中包含每个json文件的数据。我想在一个循环中执行此操作

您可以将它们放入列表中,但您必须创建并初始化400个列表

更好的方法是将它们放入字典,其中键是文件名,值是数据

import glob, json
from datetime import datetime

json_dict = {}
for filename in glob.glob('*.json'): 
    with open(filename, 'r') as json_data: 
        data = json.load(json_data)
        json_dict[filename] = data


def find_dates(filename):
    for k, v in json_dict.items():
        if k == filename:
            for key, value in v.items():
                for k1, v1 in value.items():
                    if k1 == 'publishTime':
                        return v1


date_1 = datetime.strptime(find_dates('jimmy.json'), '%I:%M %p - %d %b %Y')

date_2 = datetime.strptime(find_dates('john.json'), '%I:%M %p - %d %b %Y')

diff = date_2 - date_1

print(diff)
打印出:

1 day, 0:04:00
谢谢@johnashu的帮助。我是用下面的代码做的。我列了一张清单。
欢迎来到Stackoverflow。请创建一个最小的,完整的,可验证的例子,我试图这样做,但我是新的StackOverflow,所以不能这样做。例如,我有JSON文件,john.JSON;rick.json;tom.json;肖恩。我想创建4个列表,其中包含我正在以这种方式执行的这四个JSON文件的数据,但我无法做到:对于glob.glob('*.JSON')中的文件名:open(filename,encoding=“utf8”)为JSON\u data:data=JSON.load(JSON\u data)namelist=[],所以基本上,我有一个JSON文件100006.JSON。在这方面,我有一个属性“publishTime”:“2015年3月4日上午9:38”。同样,也有不同的发布时间。我必须找出第一次和最后一次出版时间的区别。我必须对其他400个Json文件执行同样的操作。早些时候,我使用列表进行操作,我在列表的第一个和最后一个元素中存储了第一个和最后一个发布时间,并进行了减法运算,我无法对所有400个文件执行此操作,因此我想知道解决方案。我是Stackoverflow的新手,所以不知道提问的正确方式。试试看。。。当然,您可能需要对它进行微调,因为我不知道json数据是什么样子的!很高兴你解决了!!你应该说是推特!!:)另外,请为未来的访客选择正确答案!
import glob
import json
import re 
lists = [[] for k in range(100)]
m=0
for filename in glob.glob('*.json'):

    with open(filename, encoding="utf8") as json_data:
        data = json.load(json_data)

        i=0
        for r in data['TweetsList']:
            line0= data["TweetsList"][i]["pubTime"]                  
            lists[m].append(line0)
            i+=1

    m+=1