我有一个根文件,其中包含一些 TDirectories 和 TEfficiency。我需要从中提取数据以进行进一步处理。
file = uproot.open("myroot.root")
my_directory = file["AnalysisEfficiency"]["ABC_10"]
my_directory.keys()
[b'hPixelEfficiency;1',,
b'eTotalEfficiency;1',
b'efficiencyColumns;1',
b'efficiencyRows;1']
之后
my_eff = my_directory["eTotalEfficiency"]
我明白了
NotImplementedError:
Unimplemented streamer type: TStreamerSTL
members: {'_classversion': 4, '_fOffset': 0, '_fName': b'fBeta_bin_params', '_fTitle': b'parameter for prior beta distribution different bin by bin', '_fType': 500, '_fSize': 24, '_fArrayLength': 0, '_fArrayDim': 0, '_fMaxIndex': array([0, 0, 0, 0, 0], dtype=int32), '_fTypeName': b'vector<pair<double,double> >', '_fXmin': 0.0, '_fXmax': 0.0, '_fFactor': 0.0, '_fSTLtype': 1, '_fCtype': 61}
file contents:
00000153 40 00 00 0c 40 09 00 00 00 d7 be d2 00 00 00 00 |@...@...........|
00000173 3f e5 d8 97 a2 41 a3 f5 40 00 00 11 00 05 00 01 |?....A..@.......|
00000213 00 00 00 00 03 00 00 00 00 00 00 00 00 40 00 02 |.............@..|
00000233 64 ff ff ff ff 54 48 31 44 00 40 00 02 57 00 03 |d....TH1D.@..W..|
00000253 40 00 02 35 00 08 40 00 00 3d 00 01 00 01 00 00 |@..5..@..=......|
00000273 00 00 03 00 00 00 17 65 54 6f 74 61 6c 45 66 66 |.......eTotalEff|
00000313 69 63 69 65 6e 63 79 5f 70 61 73 73 65 64 18 74 |iciency_passed.t|
00000333 6f 74 61 6c 45 66 66 69 63 69 65 6e 63 79 20 28 |otalEfficiency (|
00000353 70 61 73 73 65 64 29 40 00 00 08 00 02 02 5a 00 |passed)@......Z.|
00000373 01 00 01 40 00 00 06 00 02 00 00 03 e9 40 00 00 |...@.........@..|
我在这里和这里检查过,但我不确定是否有解决方案。我正在使用连根拔起 3.4.15。有没有办法克服这个使用这个或另一个版本检索数据?