繁体   English   中英

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

[英]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. {'origin': '127.0.0.1'}应该设置为变量或被注释。

  1. 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 列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM