执行此类操作的最佳方法是使用Python
如何更新dictionary对象以仅获取所选标记。例如,在下面我只想得到Id,和位置
InputString:
{
1235 : {'Id':1, 'Product' : 'Prod1, 'Location' : 'NY'},
1236 : {'Id':2, 'Product' : 'Prod2, 'Location' : 'NJ'}
1237 : {'Id':3, 'Product' : 'Prod3, 'Location' : 'CT'}
}
结果
OutputString:
{
1235 : {'Id':1, 'Location' : 'NY'},
1236 : {'Id':2, 'Location' : 'NJ'}
1237 : {'Id':3, 'Location' : 'CT'}
}
您可以使用这样的dict理解:
InputString= {1235 : {'Id':1, 'Product' : 'Prod1', 'Location' : 'NY'}, 1236 : {'Id':2, 'Product' : 'Prod2', 'Location' : 'NJ'}, 1237 : {'Id':3, 'Product' : 'Prod3', 'Location' : 'CT'}}
OutputString = {d: {k: v for k,v in InputString[d].items() if k in ['Id', 'Location']} for d in InputString}
print(OutputString)
输出:
{1235: {'Id': 1, 'Location': 'NY'},
1236: {'Id': 2, 'Location': 'NJ'},
1237: {'Id': 3, 'Location': 'CT'}}
你也可以列出你想保留的钥匙,并轻松更新以获得各种组合:
wanted = ['Id', 'Location']
InputString= {1235 : {'Id':1, 'Product' : 'Prod1', 'Location' : 'NY'}, 1236 : {'Id':2, 'Product' : 'Prod2', 'Location' : 'NJ'}, 1237 : {'Id':3, 'Product' : 'Prod3', 'Location' : 'CT'}}
OutputString = {d: {k: v for k,v in InputString[d].items() if k in wanted} for d in InputString}
print(OutputString)
pandas
模块中的pandas.DataFrame
对象-请参阅https://pandas.pydata.org/
在这种情况下,这是不必要的,但它通常是一个很好的模块,可以用于这样的数据处理。请注意,必须安装它。
以下是如何使用它:
import pandas as pd
inp = pd.DataFrame({
1235: {"Id": 1, "Product": "Prod1", "Location": "NY"},
1236: {"Id": 2, "Product": "Prod2", "Location": "NJ"},
1237: {"Id": 3, "Product": "Prod3", "Location": "CT"}
}).T
out = inp[["Id", "Location"]]
print(out)
如果你想把out
变成字典,你可以把最后一行替换为:
print(out.to_dict("index"))