从 r.text 中获取数字
Get the Numbers from r.text
我正在尝试从代码中获取数字:
import requests
import re
payload = {'cityId':3969, 'lbDistricts':599, 'criter':149,'startdate':'2003-01','cmd':'result','areaCode':18439}
url = "https://www.garantimortgage.com/apps/Socket/Webservice.ashx"
r = requests.post(url, data=payload)
print r.text
根据下面的结果 returns,我需要单独的日期和值,因为我将尝试在之后构建一个 table。但我无法转换它们。很抱歉 post
>{ "output": {"ErrorMesg": null, "resultset": {"record": {"areaid": "599", "data": [ {"Date": "2003-01", "Value": "43.99" }, {"Date": "2003-02", "Value": "44.19" }, {"Date": "2003-03", "Value": "44.67" }, {"Date": "2003-04", "Value": "45.19" }, {"Date": "2003-05", "Value": "45.98" }, {"Date": "2003-06", "Value": "46.82" }, {"Date": "2003-07", "Value": "47.68" }, {"Date": "2003-08", "Value": "48.59" }, {"Date": "2003-09", "Value": "49.7" }, {"Date": "2003-10", "Value": ...
不太清楚你在问什么,但我还是会试一试。
假设您正在尝试从该 blob 中提取 "Date" 和 "Value" 字段,您可以执行以下操作:
import json # since this thing seems to be returning json back to you
data = json.loads(r.text) # turn it into a python dict
#loop through all the data you care about
for record in data["output"]["resultset"]["record"]["data"]:
print record["Date"], record["Value"]
您通过网络请求检索的数据采用 json 格式。
- 你首先需要将json数据转换成python可以理解的数据结构。 python json library 将为您服务。
- 将 json 数据转换为嵌套字典结构后,您需要浏览数据并检索
(date, value)
字典对。
- 然后您需要丢弃键并获取值。结果数据应该是数据值元组列表
示例代码
import json
data = json.loads(r.text)
data = map(dict.values, data[u'output'][u'resultset'][u'record'][u'data'])
for row in data:
print '{:10}{:10}'.format(*row)
示例输出
2003-01 43.99
2003-02 44.19
2003-03 44.67
2003-04 45.19
2003-05 45.98
...............
那是 json 所以使用 r.json()
而不是 r.text
并使用键访问您需要的任何信息:
r = requests.post(url, data=payload)
for d in r.json()["output"]['resultset']['record']["data"]:
print(d)
{u'Date': u'2003-01', u'Value': u'43.99'}
{u'Date': u'2003-02', u'Value': u'44.19'}
{u'Date': u'2003-03', u'Value': u'44.67'}
{u'Date': u'2003-04', u'Value': u'45.19'}
{u'Date': u'2003-05', u'Value': u'45.98'}
{u'Date': u'2003-06', u'Value': u'46.82'}
{u'Date': u'2003-07', u'Value': u'47.68'}
{u'Date': u'2003-08', u'Value': u'48.59'}
{u'Date': u'2003-09', u'Value': u'49.7'}
{u'Date': u'2003-10', u'Value': u'50.7'}
{u'Date': u'2003-11', u'Value': u'51.36'}
{u'Date': u'2003-12', u'Value': u'52.16'}
{u'Date': u'2004-01', u'Value': u'53.12'}
{u'Date': u'2004-02', u'Value': u'54.17'}
{u'Date': u'2004-03', u'Value': u'54.86'}
{u'Date': u'2004-04', u'Value': u'55.58'}
{u'Date': u'2004-05', u'Value': u'56.55'}
{u'Date': u'2004-06', u'Value': u'57.69'}
{u'Date': u'2004-07', u'Value': u'58.89'}
{u'Date': u'2004-08', u'Value': u'60.01'}
{u'Date': u'2004-09', u'Value': u'61.16'}
{u'Date': u'2004-10', u'Value': u'62.03'}
{u'Date': u'2004-11', u'Value': u'62.72'}
{u'Date': u'2004-12', u'Value': u'63.5'}
{u'Date': u'2005-01', u'Value': u'64.47'}
{u'Date': u'2005-02', u'Value': u'65.46'}
.......................................
我正在尝试从代码中获取数字:
import requests
import re
payload = {'cityId':3969, 'lbDistricts':599, 'criter':149,'startdate':'2003-01','cmd':'result','areaCode':18439}
url = "https://www.garantimortgage.com/apps/Socket/Webservice.ashx"
r = requests.post(url, data=payload)
print r.text
根据下面的结果 returns,我需要单独的日期和值,因为我将尝试在之后构建一个 table。但我无法转换它们。很抱歉 post
>{ "output": {"ErrorMesg": null, "resultset": {"record": {"areaid": "599", "data": [ {"Date": "2003-01", "Value": "43.99" }, {"Date": "2003-02", "Value": "44.19" }, {"Date": "2003-03", "Value": "44.67" }, {"Date": "2003-04", "Value": "45.19" }, {"Date": "2003-05", "Value": "45.98" }, {"Date": "2003-06", "Value": "46.82" }, {"Date": "2003-07", "Value": "47.68" }, {"Date": "2003-08", "Value": "48.59" }, {"Date": "2003-09", "Value": "49.7" }, {"Date": "2003-10", "Value": ...
不太清楚你在问什么,但我还是会试一试。
假设您正在尝试从该 blob 中提取 "Date" 和 "Value" 字段,您可以执行以下操作:
import json # since this thing seems to be returning json back to you
data = json.loads(r.text) # turn it into a python dict
#loop through all the data you care about
for record in data["output"]["resultset"]["record"]["data"]:
print record["Date"], record["Value"]
您通过网络请求检索的数据采用 json 格式。
- 你首先需要将json数据转换成python可以理解的数据结构。 python json library 将为您服务。
- 将 json 数据转换为嵌套字典结构后,您需要浏览数据并检索
(date, value)
字典对。 - 然后您需要丢弃键并获取值。结果数据应该是数据值元组列表
示例代码
import json
data = json.loads(r.text)
data = map(dict.values, data[u'output'][u'resultset'][u'record'][u'data'])
for row in data:
print '{:10}{:10}'.format(*row)
示例输出
2003-01 43.99
2003-02 44.19
2003-03 44.67
2003-04 45.19
2003-05 45.98
...............
那是 json 所以使用 r.json()
而不是 r.text
并使用键访问您需要的任何信息:
r = requests.post(url, data=payload)
for d in r.json()["output"]['resultset']['record']["data"]:
print(d)
{u'Date': u'2003-01', u'Value': u'43.99'}
{u'Date': u'2003-02', u'Value': u'44.19'}
{u'Date': u'2003-03', u'Value': u'44.67'}
{u'Date': u'2003-04', u'Value': u'45.19'}
{u'Date': u'2003-05', u'Value': u'45.98'}
{u'Date': u'2003-06', u'Value': u'46.82'}
{u'Date': u'2003-07', u'Value': u'47.68'}
{u'Date': u'2003-08', u'Value': u'48.59'}
{u'Date': u'2003-09', u'Value': u'49.7'}
{u'Date': u'2003-10', u'Value': u'50.7'}
{u'Date': u'2003-11', u'Value': u'51.36'}
{u'Date': u'2003-12', u'Value': u'52.16'}
{u'Date': u'2004-01', u'Value': u'53.12'}
{u'Date': u'2004-02', u'Value': u'54.17'}
{u'Date': u'2004-03', u'Value': u'54.86'}
{u'Date': u'2004-04', u'Value': u'55.58'}
{u'Date': u'2004-05', u'Value': u'56.55'}
{u'Date': u'2004-06', u'Value': u'57.69'}
{u'Date': u'2004-07', u'Value': u'58.89'}
{u'Date': u'2004-08', u'Value': u'60.01'}
{u'Date': u'2004-09', u'Value': u'61.16'}
{u'Date': u'2004-10', u'Value': u'62.03'}
{u'Date': u'2004-11', u'Value': u'62.72'}
{u'Date': u'2004-12', u'Value': u'63.5'}
{u'Date': u'2005-01', u'Value': u'64.47'}
{u'Date': u'2005-02', u'Value': u'65.46'}
.......................................