由于您已经在使用熊猫,因此我尝试从数据框方法中获取尽可能多的里程。我还最终在离您的实现很远的地方徘徊。不过,我认为这里的关键是不要对列表和/或字典的理解变得过于聪明。您很容易混淆自己和阅读代码的每个人。
import pandas as pdfrom itertools import groupby from collections import OrderedDictimport jsondf = pd.read_csv('SampleCsvFile.csv', dtype={ "zippre" : str, "date" : str, "state" : str, "val1" : str, "val2" : str, "val3" : str, "val4" : str, "val5" : str })results = []for (zippre, state), bag in df.groupby(["zippre", "state"]): contents_df = bag.drop(["zippre", "state"], axis=1) subset = [OrderedDict(row) for i,row in contents_df.iterrows()] results.append(OrderedDict([("zippre", zippre), ("state", state), ("subset", subset)]))print json.dumps(results[0], indent=4)#with open('ExpectedJsonFile.json', 'w') as outfile:# outfile.write(json.dumps(results[0], indent=4))
将所有json数据类型编写为字符串并保留其原始格式的最简单方法是强制
read_csv将它们解析为字符串。但是,如果在写json之前需要对值进行任何数字 *** 作,则必须允许
read_csv对其进行数值解析,并将其强制转换为正确的字符串格式,然后再转换为json。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)