我正在尝试读取csv文件并根据相同的键组合值,并且文件中有多个键。 我想基于相同的键聚合记录,以便以后可以从列表访问这些记录并将其作为JSON请求中的值传递给API。
csv文件:
public elementArray(Double[][] array)
{
// convert Double[][] array to ArrayList<ArrayList<Double>> elements
this(elements);
}
代码
claimId,subscriberId,claimType,claimSubType,providerId,totalChargeAmt,claimLineNo,pos_code,procedureCode,subdiagnosisCode,svcLineFromDt,svcLineToDt,chargedAmt,clmLineUnits,presentOnAdmit,diagnosisCode
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
代码输出:
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', 'U', 'H43393']
['18A000730400', '101924200', 'M', 'M', '002664514003', '585', '2', '11', '92014', 'H43393', '2017-06-19', '2017-06-19', '160', '2', 'U', 'H43394']
我的目标是实现以下布局。.我认为,一旦我以所需的列表格式获得了数据,就可以从列表中获取值并将其传递。.
Json布局:
['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']]]
答案 0 :(得分:0)
检查是否有多个具有相同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中原始列表中元素的索引,所以可以使用列表切片 [a:b]
轻松做到这一点:
[['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']]
创建时,只需将其添加到结果列表中即可
这很难解释,但我希望这能给您一个想法。如果需要,请随时让我澄清任何部分:)