Python,使用urllib3追加curl结果列表

时间:2018-02-23 12:13:47

标签: python python-3.x 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层次结构有关吗?

3 个答案:

答案 0 :(得分:0)

几个拼写错误:

  • 您的for错过了:。它应该是for mail in mails:
  • 您想要追加mail而不是mails,即datas.append(mail)

这会解决您的语法错误吗?

答案 1 :(得分:0)

使用append时输入错误,还有一些语法错误:

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

  1. for循环在行尾需要冒号:才能启动for循环范围。
  2. 代码应该是:

    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)
    

答案 2 :(得分:0)

您无需迭代邮件中的结果。邮件是一个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列表。