【发布时间】:2018-04-02 05:55:19
【问题描述】:
我已通过以下过程读取并构建了一个 CSV 文件为字典格式:
with open("data.csv") as csvfile:
reader = csv.DictReader(csvfile)
我要做的是构建一个 for 循环,该循环通过这个字典系列进行解析,并按系列表示写入 (.stdout) 一个新行分隔 (\n) JSON 系列,如下所示:
{
"State":"CA",
"points":[
["2015-01-01", 33.5],
["2016-01-01", 100.8],
["2018-01-01", 10.1]
],
"fields":{
"Product":"TA",
"Line":"V1"
}
}
这是 csv 文件的示例:
STATE DATE VALUE PRODUCT LINE TRAN
CA 2015-01 33.5 TA V1 4
CA 2015-05 31.7 TA V1 4
CA 2016-01 100.8 TA V1 4
FL 2017-01 93.5 LC M2 2
FL 2017-03 150.5 LC M2 4
NY 2013-01 50.4 AB AB 1
NY 2016-01 70.5 AB AB 1
这是一个使用(DictReader)后得到的字典序列的例子:
{'STATE': 'CA', 'DATE': '2015-01', 'VALUE': '33.5', 'PRODUCT': 'TA', 'LINE': 'V1', 'TRAN': '4'}
{'STATE': 'CA', 'DATE': '2015-05', 'VALUE': '31.7', 'PRODUCT': 'TA', 'LINE': 'V1', 'TRAN': '4'}
我被困在for循环中间部分,我找不到重组到这个新的jason序列:
with open("data.csv") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
for key in row:
new_jsonsqc = json.dumps(row)
sys.stdout.write(new_jsonsqc + '\n')
非常感谢您的帮助!
【问题讨论】:
-
你想要的json序列是什么?
-
我想要一个系列一个系列的序列,就像上面的那样,里面有唯一的 id 'State'、'points' 和 'fields' 键。
标签: python json python-2.7 dictionary