iT邦幫忙

0

Python requests print結果

  • 分享至 

  • xImage

小弟用Python做個爬蟲程式

因為是公司內網所以忽略網址

import requests
    
my_data = data
r = requests.post('http://xxx/xxx/xxx', data = my_data)
print(r.text)

我post之後印出的值格式像下方這樣子

[{"APPLY_DATE":"2018/05/09","APPLY_TYPE":"異動","DOC_NO":"20180509"},
{"APPLY_DATE":"2018/03/23","APPLY_TYPE":"送簽","DOC_NO":"4501241013"},
{"APPLY_DATE":"2018/03/22","APPLY_TYPE":"送簽","DOC_NO":"4501239898"}]

請問我可以怎麼處理成比較乾淨易讀的格式(類似下方這樣)
APPLY_DATE:2018/05/09
APPLY_TYPE:異動
DOC_NO:20180509

還是有辦法直接export Excel ?
標頭是APPLY_DATE / APPLY_TYPE / DOC_NO

再請各位邦友解惑

謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
Homura
iT邦高手 1 級 ‧ 2018-06-19 17:42:01

使用for迴圈印出來就行了


data = [{"APPLY_DATE":"2018/05/09","APPLY_TYPE":"異動","DOC_NO":"20180509"},
{"APPLY_DATE":"2018/03/23","APPLY_TYPE":"送簽","DOC_NO":"4501241013"},
{"APPLY_DATE":"2018/03/22","APPLY_TYPE":"送簽","DOC_NO":"4501239898"}]


for dataList in data: 
    print('APPLY_DATE:' + dataList['APPLY_DATE'] + '\n' + 'APPLY_TYPE:' + dataList['APPLY_TYPE'] + '\n'+'DOC_NO:' + dataList['DOC_NO'])

上面的data是你的r.text

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2018-06-19 20:21:40 檢舉

python的不是JSON啦,雖然很像但有差異。

有沒有import json有差嗎?

Homura iT邦高手 1 級 ‧ 2018-06-19 21:57:25 檢舉

froce是唷,感謝指正

Homura iT邦高手 1 級 ‧ 2018-06-19 21:58:39 檢舉

pcw我後來試了一下,要json字串才需要,如果直接是list就不需要了

homura我是看你import json但又沒用,所以好奇問一下。
/images/emoticon/emoticon12.gif

froce iT邦大師 1 級 ‧ 2018-06-20 02:18:05 檢舉

有沒有import JSON沒差,python接回來的會是本身的list和dict。
並非JSON。

接JSON字串的話,還會需要JSON.loads去把JSON字串解析成list和dict。

Homura iT邦高手 1 級 ‧ 2018-06-20 07:51:36 檢舉

froce感謝解說

Neish iT邦研究生 1 級 ‧ 2018-06-20 08:24:37 檢舉

我昨天Google了一下 相關訊息
上述的r回傳的是不是json格式???

我試了下方做法就OK了!

import xlwt,xlrd
book = xlwt.Workbook()

sheet = book.add_sheet('sht')

for row in range(len(r.json())):

    APPLY_DATE = r.json()[row]['APPLY_DATE']
    APPLY_TYPE = r.json()[row]['APPLY_TYPE']
    DOC_NO = r.json()[row]['DOC_NO']

    sheet.write(row,0,APPLY_DATE)
    sheet.write(row,1,APPLY_TYPE)
    sheet.write(row,2,DOC_NO)

book.save('Test123.xls')
Homura iT邦高手 1 級 ‧ 2018-06-20 09:08:36 檢舉

原來還能這樣寫啊

froce iT邦大師 1 級 ‧ 2018-06-20 12:05:40 檢舉

https://www.jianshu.com/p/ee25e2b94eb8
在python中,dict和list的組合大致上和JSON相同,但是還是有差異。
python也沒有直接操作JSON的能力。
不過你可以透過json模組來轉換。

froce iT邦大師 1 級 ‧ 2018-06-20 13:00:10 檢舉

然後考慮下面兩段看似等值的程式碼。
python:

key = "1"
dic = {key:"111"}
print(dic)

js:

var key = "1";
var dic = {key:"111"};
console.log(dic);

python的結果會是:{"1":"111"}
javascript的結果會是:{key:"111"}

0
froce
iT邦大師 1 級 ‧ 2018-06-19 20:25:28

要印出來的話,你可以用
1.csv模組
2.xlwings模組等可以讀寫excel的模組

只是要看的話,用pprint就好了。

我要發表回答

立即登入回答