Python 基于相同的键创建嵌套列表
我正在尝试读取csv文件并基于同一个键组合值,并且一个文件中有多个键。 我希望基于同一个键聚合记录,以便以后可以从列表中访问这些记录,并将其作为JSON请求中的值传递给API csv文件: 代码Python 基于相同的键创建嵌套列表,python,json,Python,Json,我正在尝试读取csv文件并基于同一个键组合值,并且一个文件中有多个键。 我希望基于同一个键聚合记录,以便以后可以从列表中访问这些记录,并将其作为JSON请求中的值传递给API csv文件: 代码 import csv with open('JsonRequestPricingMedical.csv','r') as f: reader = csv.reader(f) next(reader) for row in reader: print(row) 代
import csv
with open('JsonRequestPricingMedical.csv','r') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
print(row)
代码输出:
所需输出:
末尾有两个嵌套列表
['18A000730400', '101924200', 'M', 'M', '002664514003', '585', [['1', '11', '92014', 'H43393','2017-06-19', '2017-06-19', '160', '1'],['2', '11', '92014', 'H43393','2017-06-19', '2017-06-19', '160', '1']],[['U', 'H43393'],['U', 'H43394']]]
我的目标是实现以下布局。。我想一旦我得到了所需列表格式的数据,我就可以从列表中获取值并传递它
Json布局:
[
{
"claimsHeader":" {
"claimId": "18A000730400",
"subscriberId": "101924200",
"claimType":{
"code": "M"
},
"claimSubType": {
"code": "M"
},
"providerId" :"002664514003",
"totalChargeAmt": "585",
"claimLineDetail" :[
{
"claimLineNo": "1",
"placeOfService": {
"code": "11"
},
"procedureCode": {
"code": "92014"
},
"subDiagnosisCd": {
"code": "H43393"
},
"svcLineFromDt": "2017-06-19",
"svcLineToDt": "2017-06-19",
"chargedAmt": "160",
"clmLineUnits": "1",
},
{
"claimLineNo": "2",
"placeOfService": {
"code": "12"
},
"procedureCode": {
"code": "92015"
},
"subDiagnosisCd": {
"code": "H433945
},
"svcLineFromDt": "2017-06-19",
"svcLineToDt": "2017-06-19",
"chargedAmt": "160",
"clmLineUnits": "2",
}
],
{
"claimSpecDiag": [
"presentOnAdmit": "",
"diagnosisCode": "H43393",
},
{
"presentOnAdmit": "",
"diagnosisCode": "H43394",
}
]
}
]
检查是否有多个ID相同的条目(行)。如果有,将它们读入列表并开始创建结果列表:
[['18A000730400', '101924200', 'M', 'M', '002664514003', '585', '1', '11', '92014', 'H43393', '2017-06-19', '2017-06-19', '160', '1', 'U', 'H43393']
['18A000730400', '101924200', 'M', 'M', '002664514003', '585', '2', '11', '92014', 'H43393', '2017-06-19', '2017-06-19', '160', '2', 'U', 'H43394']]
# result list for now
['18A000730400', '101924200', 'M', 'M', '002664514003', '585']
然后,从每个条目为列表列表中需要的列创建一个列表。因为您从csv中知道原始列表中元素的索引,所以您可以通过列表切片轻松做到这一点:
[['1', '11', '92014', 'H43393','2017-06-19', '2017-06-19', '160', '1'],['2', '11', '92014', 'H43393','2017-06-19', '2017-06-19', '160', '1']]
[['U', 'H43393'],['U', 'H43394']]
创建时,只需将其附加到结果列表中
这有点难以解释,但我希望这能给你一个想法。如果您需要,请随时要求我澄清任何部分:)您能解释输出吗?为什么先在不同的键(1/2)上拆分,然后在同一个键(u/u)上拆分?还有,你打算用它实现什么?您如何知道前两个列表中的哪一个属于后两个列表中的哪一个?为了保持一致性,第一部分不应该也是嵌套列表吗?如果有两个以上的列表,可能会有更复杂的“重叠”呢?我已经更新了我正在尝试实现的json布局。。除了先创建一个列表,然后从列表中读取值之外,我想不出其他方法。。因为我们在json请求的底部有嵌套。。我想只在顶部创建它,并在需要的地方传递它。你有哪些尝试不起作用?
[['18A000730400', '101924200', 'M', 'M', '002664514003', '585', '1', '11', '92014', 'H43393', '2017-06-19', '2017-06-19', '160', '1', 'U', 'H43393']
['18A000730400', '101924200', 'M', 'M', '002664514003', '585', '2', '11', '92014', 'H43393', '2017-06-19', '2017-06-19', '160', '2', 'U', 'H43394']]
# result list for now
['18A000730400', '101924200', 'M', 'M', '002664514003', '585']
[['1', '11', '92014', 'H43393','2017-06-19', '2017-06-19', '160', '1'],['2', '11', '92014', 'H43393','2017-06-19', '2017-06-19', '160', '1']]
[['U', 'H43393'],['U', 'H43394']]