【发布时间】:2014-04-16 18:17:56
【问题描述】:
我将用“我是一个使用糟糕的‘数据库’的菜鸟”作为我要说的序言。下面是我从我的 csv 输出的当前 json 输出的结构(下面的大纲)。基本上我要做的是将A列(信息技术)中的“组”附加到每个“数据”字典中,所以有一个“组”键:看起来像“组”的值:“信息技术”。然后第 5 行(Consumer Discretionary)下的所有内容都将具有“group”:“Consumer Discretionary”键、值。
{
"stocks": [
{
"data": {
"portfolio_average_weight": "5.985"
"portfolio_total_return": "27.948"
},
"name": "Google Inc "
},
{
"data": {
"portfolio_average_weight": "2.896",
"portfolio_total_return": "24.292"
},
"name": "Mastercard Inc "
}]
}
Column A Column B Column C Column D
Information Technology [blank cell] [blank cell] [blank cell]
[blank cell] Google 5.985 27.948
[blank cell] Mastercard 2.896 24.292
Consumer Discretionary [blank cell] [blank cell] [blank cell]
[blank cell] xxxxxx xxxxxxxxx xxxxxxxxx
这是我当前的代码:
with open('test.csv', 'rU') as csvfile:
lines = csv.reader(csvfile)
for line in lines:
elif line[0] == "" and line[1] != "":
data = test_two_level(line)
bottom_level = {
"name": line[2],
"data": data}
def test_two_level(line):
data = {
"portfolio_average_weight":line[3],
"portfolio_total_return":line[4]}
return data
我希望最终输出的样子:
{
"stocks": [
{
"data": {
"portfolio_average_weight": "5.985",
"portfolio_total_return": "27.948",
"group": "Information Technology"
},
"name": "Google Inc "
},
{
"data": {
"portfolio_average_weight": "2.896",
"portfolio_total_return": "24.292",
"group": "Information Technology"
},
"name": "Mastercard Inc "
}]
}
下面是 csv:
Information Technology,,,
,Google Inc ,5.985,27.948
,Mastercard Inc ,2.896,24.292
Consumer Discretionary,,,
【问题讨论】:
-
你能在读取 csv 到 json 的地方添加你的 python 代码吗?
-
所以,字典已经存在,您想通读 csv 文件,并在字典的
"stocks"列表中的条目中添加一个"group"键,其'name'值与Column B匹配的csv? -
@martineau 我想将 A 列中的“组”添加到每只股票的“数据”字典中。所以理想情况下,它看起来像我在原始帖子底部添加的内容
-
这就是我想要描述的。我看到的唯一问题是您为“名称”键显示的值与“B 列”下的值不完全匹配。您能否将正在读取的 csv 文件中的实际行发布到您的问题中?
-
@martineau 感谢您的耐心等待。我添加了有问题的 csv 行。
标签: python json csv dictionary