过滤 2 个词典 json Python
Filtering 2 dictionaries json Python
我正在尝试编写一个代码,它只打印 sub-dictionaries
的 file1
s value
变量输出,所以 {'StrategyNumber': 2, 'TradingPair': 'BCHUSDT', 'value': 3000}
s value
输出将是 3000
。如果 file2
的 Openningdate
和 Closingdate
不为空,那么 file1
和 file2
是匹配的,那么我想得到 sub 的 value
输出-字典。我怎样才能得到 Expected Output
?
词典:
file1={'RSI': [{'StrategyNumber': 1, 'TradingPair': 'BTCUSD', 'value': 100}], 'MOM': [{'StrategyNumber': 2, 'TradingPair': 'BCHUSDT', 'value': 3000}, {'StrategyNumber': 3, 'TradingPair': 'ETHUSDT', 'value': 22}], 'MOM_RSI': [{'StrategyNumber': 4, 'TradingPair': 'BCHUSDT', 'value': 4556}, {'StrategyNumber': 5, 'TradingPair': 'BTCUSDT', 'value': 234}]}
file2={'RSI': [{'StrategyNumber': 1, 'Openningdate': [], 'Closingdate': []}], 'MOM': [{'StrategyNumber': 2, 'Openningdate': [324284], 'Closingdate': [23234]}, {'StrategyNumber': 3, 'Openningdate': [324235456, 78475], 'Closingdate': [232343435, 45678756]}], 'MOM_RSI': [{'StrategyNumber': 4, 'Openningdate': [], 'Closingdate': []}, {'StrategyNumber': 5, 'Openningdate': [777, 88, 9, 10], 'Closingdate': [10, 476, 3456, 45]}]
过滤器代码:
for Strats in file2:
for Strats_info in file2[Strats]:
for momentum_filter in file1[Strats]:
if len(Strats_info["Openningdate"]) > 0 and len(Strats_info["Closingdate"]) > 0:
print(momentum_filter['value'])
输出:
3000
22
3000
22
4556
234
预期输出:
3000
24
234
使用zip
将相同的Strats_info
与相同的momentum_filter
配对:
file1 = {'RSI': [{'StrategyNumber': 1, 'TradingPair': 'BTCUSD', 'value': 100}],
'MOM': [{'StrategyNumber': 2, 'TradingPair': 'BCHUSDT', 'value': 3000},
{'StrategyNumber': 3, 'TradingPair': 'ETHUSDT', 'value': 22}],
'MOM_RSI': [{'StrategyNumber': 4, 'TradingPair': 'BCHUSDT', 'value': 4556},
{'StrategyNumber': 5, 'TradingPair': 'BTCUSDT', 'value': 234}]}
file2 = {'RSI': [{'StrategyNumber': 1, 'Openningdate': [], 'Closingdate': []}],
'MOM': [{'StrategyNumber': 2, 'Openningdate': [324284], 'Closingdate': [23234]},
{'StrategyNumber': 3, 'Openningdate': [324235456, 78475], 'Closingdate': [232343435, 45678756]}],
'MOM_RSI': [{'StrategyNumber': 4, 'Openningdate': [], 'Closingdate': []},
{'StrategyNumber': 5, 'Openningdate': [777, 88, 9, 10], 'Closingdate': [10, 476, 3456, 45]}]}
for Strats in file2:
for Strats_info,momentum_filter in zip(file2[Strats],file1[Strats]):
if len(Strats_info["Openningdate"]) > 0 and len(Strats_info["Closingdate"]) > 0:
print(momentum_filter['value'])
输出:
3000
22
234
我正在尝试编写一个代码,它只打印 sub-dictionaries
的 file1
s value
变量输出,所以 {'StrategyNumber': 2, 'TradingPair': 'BCHUSDT', 'value': 3000}
s value
输出将是 3000
。如果 file2
的 Openningdate
和 Closingdate
不为空,那么 file1
和 file2
是匹配的,那么我想得到 sub 的 value
输出-字典。我怎样才能得到 Expected Output
?
词典:
file1={'RSI': [{'StrategyNumber': 1, 'TradingPair': 'BTCUSD', 'value': 100}], 'MOM': [{'StrategyNumber': 2, 'TradingPair': 'BCHUSDT', 'value': 3000}, {'StrategyNumber': 3, 'TradingPair': 'ETHUSDT', 'value': 22}], 'MOM_RSI': [{'StrategyNumber': 4, 'TradingPair': 'BCHUSDT', 'value': 4556}, {'StrategyNumber': 5, 'TradingPair': 'BTCUSDT', 'value': 234}]}
file2={'RSI': [{'StrategyNumber': 1, 'Openningdate': [], 'Closingdate': []}], 'MOM': [{'StrategyNumber': 2, 'Openningdate': [324284], 'Closingdate': [23234]}, {'StrategyNumber': 3, 'Openningdate': [324235456, 78475], 'Closingdate': [232343435, 45678756]}], 'MOM_RSI': [{'StrategyNumber': 4, 'Openningdate': [], 'Closingdate': []}, {'StrategyNumber': 5, 'Openningdate': [777, 88, 9, 10], 'Closingdate': [10, 476, 3456, 45]}]
过滤器代码:
for Strats in file2:
for Strats_info in file2[Strats]:
for momentum_filter in file1[Strats]:
if len(Strats_info["Openningdate"]) > 0 and len(Strats_info["Closingdate"]) > 0:
print(momentum_filter['value'])
输出:
3000
22
3000
22
4556
234
预期输出:
3000
24
234
使用zip
将相同的Strats_info
与相同的momentum_filter
配对:
file1 = {'RSI': [{'StrategyNumber': 1, 'TradingPair': 'BTCUSD', 'value': 100}],
'MOM': [{'StrategyNumber': 2, 'TradingPair': 'BCHUSDT', 'value': 3000},
{'StrategyNumber': 3, 'TradingPair': 'ETHUSDT', 'value': 22}],
'MOM_RSI': [{'StrategyNumber': 4, 'TradingPair': 'BCHUSDT', 'value': 4556},
{'StrategyNumber': 5, 'TradingPair': 'BTCUSDT', 'value': 234}]}
file2 = {'RSI': [{'StrategyNumber': 1, 'Openningdate': [], 'Closingdate': []}],
'MOM': [{'StrategyNumber': 2, 'Openningdate': [324284], 'Closingdate': [23234]},
{'StrategyNumber': 3, 'Openningdate': [324235456, 78475], 'Closingdate': [232343435, 45678756]}],
'MOM_RSI': [{'StrategyNumber': 4, 'Openningdate': [], 'Closingdate': []},
{'StrategyNumber': 5, 'Openningdate': [777, 88, 9, 10], 'Closingdate': [10, 476, 3456, 45]}]}
for Strats in file2:
for Strats_info,momentum_filter in zip(file2[Strats],file1[Strats]):
if len(Strats_info["Openningdate"]) > 0 and len(Strats_info["Closingdate"]) > 0:
print(momentum_filter['value'])
输出:
3000
22
234