簡體   English   中英

如何將帶有多個 JSON 對象的 Asana API 響應轉換為 Python 對象

[英]How to convert Asana API response with multiple JSON objects to Python objects

我是 Python 的新手。 我正在編寫一個腳本來發送有關過期 Asana 任務的通知。 我在將 Asana API 響應(具有多個表示任務的對象的 JSON)轉換為 Python 對象時遇到問題。 現在,我要做的就是將 JSON 對象轉換為 Python 對象以驗證響應。

這是來自 Asana 的原始 JSON 響應的樣子:

{
    "data": [
      {
        "gid": "1234567891234567",
        "due_on": "2021-02-12",
        "name": "My First Task",
        "permalink_url": "https://app.asana.com/0/123456789/1234567891234567"
      },
      {
        "gid": "1234567891234568",
        "due_on": "2021-02-26",
        "name": "My Second Task",
        "permalink_url": "https://app.asana.com/0/123456789/1234567891234568"
      },
      {
        "gid": "1234567891234569",
        "due_on": null,
        "name": "My Third Task",
        "permalink_url": "https://app.asana.com/0/123456789/1234567891234569"
      }
    ]
  }

我的 Python 代碼如下所示:

import json
import asana


taskList = []
with open('./work_in_progress.json') as f:
    for jsonObj in f:
        taskDict = json.loads(jsonObj)
        taskList.append(taskDict)

print("Printing each JSON Decoded Object")
for task in taskList:
    print(task["gid"], task["name"], task["due_on"], task["permalink"])

但是,當我運行它時,我收到以下錯誤:

Traceback (most recent call last):
  File "test.py", line 9, in <module>
    taskDict = json.loads(jsonObj)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting object: line 1 column 2 (char 1)

任何幫助,將不勝感激。

您是否嘗試過以下操作? 用以下代碼替換with語句:

with open('./work_in_progress.json') as f:
    taskDict = json.load(f)
    taskList.append(taskDict)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM