gpt4 book ai didi

python - python读取多个json文件来查找共同的键值对

转载 作者:行者123 更新时间:2023-12-01 03:14:49 36 4
gpt4 key购买 nike

我有一个 json 文件的路径列表。

files = ['/Users/sbm/Downloads/ds214mb/sub-EESS001/sub-EESS001_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS002/func/sub-EESS002_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS003/sub-EESS003_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS004/func/sub-EESS004_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS005/sub-EESS005_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS006/sub-EESS006_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS007/func/sub-EESS007_task-Cyberball_bold.json',
'/Users/sbm/Downloads/ds214mb/sub-EESS008/func/sub-EESS008_task-Cyberball_bold.json']

现在我打算将所有这些文件读入与文件名或差异名称相同名称的字典中。然后迭代这些字典来查找公共(public)键值对。

我执行了以下操作来读取所有 json 文件以进行 diff 字典。现在比较所有这些字典以找到公共(public)键:值对的有效方法是什么?

import json
for file in range(0, len(files)):
globals()['json%s' % file] = "Hello"

i = 0
for file in files:
globals()['json%s' % i] = json.loads(open(file).read())
i = i+1

示例 json 文件如下所示:

{
'Manufacturer': 'Siemens',
'ManufacturerModelName': 'Magnetom Verio',
'RepetitionTime': 1.56,
'SliceTiming': [0.0,
0.78,
0.06,
0.84,
0.12],
'TaskName': 'Cyberball'}

最佳答案

有趣的问题......

我首先通过管道传输 JSON 文件列表......

find <dir> | grep json$ 

该管道被发送到 python 程序......

所以现在看起来像

find <dir> | grep json$ | python t.py

Python 代码执行以下操作

  1. 打开文件
  2. 读取文件
  3. JSON 解析为 Python 字典
  4. 输出Python字典

所以看起来像这样(Python3 代码)

import json,sys,pprint
for file in sys.stdin:
file=file.strip('\n')
with open(file,"rt") as ifp:
b=ifp.read()
b=(b.replace('\n','')).replace("'","\"")
ifp.close()
c=json.loads(b)
for k,v in c.items():
print('{}:{}'.format(k,v))

我们现在使用 bash 对输出进行排序和计数...通常看起来像这样...

sort | uniq -c | sort -n  

因此,将所有这些放在一起,我们得到......(我假设所有 JSON 都与我目前所在的目录相同)

ls *.json | python t.py | sort  | uniq -c  | sort -n

如果你想要前 5 名 - 它就变成了

ls *.json | python t.py | sort  | uniq -c  | sort -n | head -n 5

关于python - python读取多个json文件来查找共同的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42565563/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com