【问题标题】:UPDATED: Parsing JSON object in python when object contains an array and another associated object at the same level更新:当对象包含同一级别的数组和另一个关联对象时,在 python 中解析 JSON 对象
【发布时间】:2016-12-21 22:28:36
【问题描述】:

我们的一个产品 API 将 JSON 对象传递给我时遇到问题。我正在使用 Python 2.7 创建一个函数,让我们的客户服务团队查看有关我们网站上发布的工作的详细信息。 JSON 包返回一个对象数组,每个对象都包含一个数组和一个对象。我需要读取与主对象内的一个对象关联的数组,但是它们不是嵌套的。正如在申请者数组中没有嵌套在 Job 的对象中一样。这意味着我通常的“response[0][0]['applicantName']”在这里不起作用。

以下数据已更新,以表示 API 实际提供给我的内容。之前很抱歉,为了保护数据,我已经对其进行了编辑。还是一样,但这是实际结果。

我想做的是让用户输入 jobId,然后我会向他们提供与该 jobID 相关的所有申请人的列表。由于 jobID 有时可能是非连续的,所以我不能使用索引号,它必须是 jobID 号。

有人可以帮忙吗?

这是我得到的 JSON 结构:

[{u'bids': [{u'applicantId': 221,
            u'comment': 'I have applied to the job'},
            {u'applicantId': 221,
            u'comment': 'I have applied to the job'}],
  u'job': {u'jobId': 1}},
 {u'bids': [{u'applicantId': 221,
              u'comment': 'I have applied to the job'},
              {u'applicantId': 221,
              u'comment': 'I have applied to the job'}],
  u'job': {u'jobId': 1}}]

正如我所说,我在 python 2.7 中使用“请求”库调用 API 和 .json() 来读取它。

提前致谢!

【问题讨论】:

  • 如果您的数据真的看起来像那样,那么生成它的 API 就会损坏。如果没有,请编辑您的数据样本,以便我们告诉您如何处理它,而无需猜测其真实结构。
  • 这类似于这个问题中的looks-like-JSON-but-isnt-JSON 格式:stackoverflow.com/questions/20691134/…,包括一些示例解析器代码。

标签: python asp.net arrays json


【解决方案1】:

该内容似乎不是有效的 json,这意味着您将无法使用典型的知名 json.loads 函数对其进行解析。

此外,您将无法使用 ast.literal_eval,因为它不是有效的 Python 表达式。

不确定这是否是个好主意...但是假设您将内容作为字符串获取,我将尝试为该类型的服务器对象编写自己的解析器,或者只是寻找能够解析它们。

【讨论】:

  • 一个有效的点,我可以捕获数据,重新排序,然后运行我需要的操作。
猜你喜欢
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多