【问题标题】:How to print particular JSON value in Python?如何在 Python 中打印特定的 JSON 值?
【发布时间】:2012-02-24 00:09:56
【问题描述】:

所以我有一个 Python 代码,它返回一个像这样的 JSON 字符串:

'{"X": "value1", "Y": "value2", "Z": [{"A": "value3", "B": "value4"}]}'

我想要做的是打印和/或返回(在 Python 中)"value 3" 以便使用它。还将它分配给一个变量,以便我以后可以使用它。

我该怎么做?

【问题讨论】:

  • 抱歉代码错误!!谢谢!
  • 注意:我使用“simplejson”模块来解析数据
  • 您的输入仍然不是有效的 JSON。 value1value4 必须在引号内。即使simplejson 也无法解码您的输入。
  • 请发布您正在尝试的一些代码,这样我们就不必猜测您使用的是哪个模块。
  • 顺便说一句,simplejson 与 json 库相同。 stackoverflow.com/questions/712791/…

标签: python json


【解决方案1】:

好的,我假设您的 JSON 看起来像这样(注意每个 value 周围的 "):

{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}

那么你可以这样做:

import json
j = '{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}'
k = json.loads(j)
assert k["Z"][0]["A"] == "value3"

编辑:即使simplejson也无法解码您的原始输入。

>>> import simplejson
>>> s1 = '{"X":value1,"Y":"value2","Z":[{"A":"value3","B":value4}]}'
>>> simplejson.loads(s1)
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)
>>> s2 = '{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}'
>>> print simplejson.loads(s2)["Z"][0]["A"]
value3

【讨论】:

  • 哦!两件事:我正在使用“simplejson”模块来解析数据,而我的字符串就像我的问题中最近编辑的一样......你的答案适用吗?因为我使用的是 simplejson.loads(datavariable)
【解决方案2】:
>>> import json
>>> a = json.loads('{"X":"value1","Y":"value2","Z":[{"A":"value3","B":"value4"}]}')
>>> a
{'Y': 'value2', 'X': 'value1', 'Z': [{'A': 'value3', 'B': 'value4'}]}
>>> a["Z"][0]["A"]
'value3'

【讨论】:

  • 哦!两件事:我正在使用“simplejson”模块来解析数据,而我的字符串就像我的问题中最近编辑的一样......你的答案适用吗?因为我使用的是 simplejson.loads(datavariable)
  • 谢谢!这对于我想要实现的目标来说完美无缺!
  • 我可以阅读任何教程以便更熟悉从 Python 中的 JSON 字符串中读取某些值?
  • 嗯,问题出在哪里?是将 JSON 字符串加载到 Python 对象中,还是找到了访问元素的正确方法?
  • 访问元素的正确方法...我知道如何在 python 中解析 json 数据并为该“任务”分配一个变量,但我不确定要“选择”特殊从该数据中获取值并为它们分配一个变量...对阅读材料有什么建议吗? :)
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多