Python,将 curl 结果附加到 urllib3 列表

Python, append curl results to list with urllib3

我正在尝试将使用 urllib3 的 curl 请求的结果附加到列表中。你可以从我下面的尝试中看出我已经超出了我的深度:)

import urllib3
import json
import csv

http = urllib3.PoolManager()
r = http.request('GET', 'URL')
mails = json.loads(r.data.decode('utf-8'))
{'origin': '127.0.0.1'}
datas = list()
for mail in mails:
    datas.append(mail)

我修正了语法错误,感谢您的回答。然而,结果似乎不正确。

我希望列表中的一个条目看起来像:

{"success":true,"data:[{"id":20758,"company_id":117376,"user_id":1529193,"done":false,"type":"email","reference_type":"none","reference_id":null,"due_date":"2017-09-01","due_time":"","duration":"","add_time":"2017-01-13 

我得到的只有这个,没有别的:

success 
data
additional_data 
related_object

我猜这与 JSON 层次结构有关?

少量错别字:

  • 您的 for 漏了一个 :。应该是for mail in mails:
  • 您想附加 mail 而不是 mailsdatas.append(mail)

这是否解决了您的语法错误?

您在使用 append 时有一个拼写错误,还有一些语法错误:

1.the 行 {'origin': '127.0.0.1'} 应设置为变量或进行注释。

  1. a for 循环要求在行尾有一个冒号 : 以启动 for 循环范围。

代码应该是这样的:

import urllib3
import json
import csv

http = urllib3.PoolManager()
r = http.request('GET', 'URL')
mails = json.loads(r.data.decode('utf-8'))
# {'origin': '127.0.0.1'}

datas = list()
for mail in mails:
    datas.append(mail)

您不需要迭代邮件的结果。邮件是 json 输出。 要将结果添加到列表中,只需执行即可。

datas = list()
mails = json.loads(r.data.decode('utf-8'))
datas.append(mails)

输出:

[{"success":true,"data:[{"id":20758,"company_id":117376,"user_id":1529193......]

列表json。