【问题标题】:Python update list with dict values带有dict值的Python更新列表
【发布时间】:2015-05-04 13:13:35
【问题描述】:

这个问题看起来很基本,但我没有找到一个干净的解决方案。

我想在一个列表中添加一些值(字典),例如

data = { "item" : {}, "series": [ ] }
...
data['item'].update(dict(labels=myitems))   
data['series'].append( dict(data=myseriesData) )       
data['series'].append( dict(name=myname) )

这会产生:

{'series': [{'data': [1, 2, 3]}, {'name': 'serie1'}], 'item': {'labels': ['jan', 'feb', 'march']}}

虽然我没有系列列表中的花括号,但我的 JSON 需要采用以下格式:

{'series': ['data': [1, 2, 3], 'name': 'serie1'], 'item': {'labels': ['jan', 'feb', 'march']}}

我尝试了不同的方法,例如使用 extend update 添加字符串或元组,但没有成功..

有什么想法吗? “诀窍”是什么?

【问题讨论】:

  • 这是因为你在附加字典
  • 你让事情变得更糟了。尝试将您要求的内容放入像 jsonlint.com 这样的 JSON 验证器中。您的预期输出无效。
  • 您的 json 样本无效;您缺少一些花括号,并且 JSON 使用双引号。列表中不能有键值对。你的意思是{"series": [{"data": [1, 2, 3], "name": "serie1"}], "item": {"labels": ["jan", "feb", "march"]}} 吗?注意双引号。
  • 所需的输出是:{'series': ['data': [1, 2, 3], 'name': 'serie1'], 'item': {'labels': [ '一月','二月','三月']}}。我编辑了我的初始 json。谢谢

标签: python json list dictionary append


【解决方案1】:

只附加一个dict

data['series'].append(dict(data=myseriesData, name=myname))

【讨论】:

  • 这不起作用,它产生以下输出: 这不起作用,它产生以下输出: {'series': [ {'data': [1, 2, 3], ' name': 'serie1' } ], 'item': {'labels': ['jan', 'feb', 'march']}} 注意,系列 [ { .. } ] 大括号不应该出现
  • @Algina:然后指定您期望的输出,否则我们将整天在这里来来回回,因为我们放大您想要的内容。
  • 抱歉 Martijn,按 Enter 太早了!问题是在列表 [] 我不想要花括号,它应该是:只有 .. 'series' :['data': [123, 100, 123, 255], 'name': 'serie1 ']
  • @Algina:这不是一个有效的结构,在 Python 或 JSON 中。
  • @Algina:这是不可能的。不是在 Python 中,不是在 JSON 中。
猜你喜欢
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 2022-06-17
  • 2013-12-30
  • 2012-08-05
  • 2017-09-29
  • 1970-01-01
相关资源
最近更新 更多