从列表中查找包含变量的文件夹中的文件名,打开JSON文件并对其执行操作



我正在处理JSON文件类型,我已经创建了一些代码,这些代码将打开一个文件并将其添加到pandas数据帧中,对其中的数据执行一些过程,代码片段如下;

response_dic=first_response.json()   
print(response_dic)
base_df=pd.DataFrame(response_dic)
base_df.head()

然后,代码将JSON数据的一部分提取到数据帧中,然后合并并打印到CSV。

我想开发代码的地方是让它首先遍历文件夹,找到与我要处理的文件名列表匹配的文件名,然后对这些文件名执行函数。例如,我有一个包含1000个文档的文件夹,我只需要对其中的一个示例执行该功能。我已经在CSV中创建了一个我想要处理的帐户代码列表,然后我导入了CSV详细信息,并创建了如下帐户代码列表:

csv_file=open(r'C:filepath','r')
cikas=[]
cikbs=[]
csv_file.readline()
for a,b,c in csv.reader(csv_file, delimiter=','):
cikas.append(a)
cikbs.append(b)
midstring=[s for s in cikbs]
print(midstring)

然后,我的帐户名存储在中间字符串中,例如['12345','2468','56789']。这意味着我可以在未来通过修改我的CSV文件来控制处理哪些帐户代码。这些名字在不同的阶段会有所不同,因此我不想在这个阶段对它们进行绝对的定义。

我想让代码检查工作目录,看看是否有匹配的文件,例如C:\Users*1234.json。如果有,请对其执行panda过程,然后移到下一个文件。这可能吗?我尝试了很多教程,涉及glob、iglob、fnmatch等,但很难想出一个可行的解决方案。

您可以首先列出当前目录中所有扩展名为.json的文件。

import os, json
import pandas as pd
path_to_json = 'currentdir/'
json_files = [json_file for json_file in os.listdir(path_to_json) if json_file.endswith('.json')]
print(json_files)

现在遍历json_files列表并执行检查

# example list json_files= ['12345.json','2468.json','56789.json']
# midstring = ['12345', '2468, '56789']
for file in json_files:
if file.split('.')[0] in midstring:
df = pd.DataFrame.from_dict(json_file)
# perform pandas functions
else:
continue

最新更新