1

我有一个根文件,其中包含一些 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。有没有办法克服这个使用这个或另一个版本检索数据?

4

0 回答 0