我正在尝试使用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层次结构有关吗?
答案 0 :(得分:0)
几个拼写错误:
for
错过了:
。它应该是for mail in mails:
mail
而不是mails
,即datas.append(mail)
这会解决您的语法错误吗?
答案 1 :(得分:0)
使用append
时输入错误,还有一些语法错误:
1.应将{'origin': '127.0.0.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)
答案 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列表。