我已经用BeautifulSoup html解析器在数据库上写了一段时间了。我只有一个价格,我想在未来的循环中使用这个价格。有人能帮忙吗?我将永远心存感激!我正在尝试存储一些从网站上抓取的数据;以下是我的python代码:
soup = BeautifulSoup(html, 'html.parser')
site_json=json.loads(soup.text)
for i in range(len(site_json)):
pubdebt = site_json[i]['pubdebt']
publease = site_json[i]['publeaseroject']
highmetalprice = site_json[i]['highmetalprice']
try:
Job.objects.create(
pubdebt=pubdebt,
publeaseroject=publeaseroject,
highmetalprice=highmetalprice,
在下面的代码中,我尝试使用以前的低值。每条线都引用了第二天,比如1-1-2020,1-02-2020-01-03-2020-01-04-2020,我的数据就像
"pubdebt":CA,"publeaseroject":145,"highmetalprice":110200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":130200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":150200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":180200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":120200,
我的期望是进入每个循环:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
highmetalprice: 110200 (first highmetalopenprice value)
HIGHMETALCLOSE: .... (it may blank because we have just one price for beggining day)
第二个循环类似于:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
Highmetalopen: 110200 ( previous highmetalprice value)
HIGHMETALCLOSE: 130200 (current highmetalprice value)
第三个循环:
Pubdebt: Ca (current value)
Publeaseproject:145 (sticky value)
Highmetalopen: 130200 ( previous highmetalprice value)
HIGHMETALCLOSE: 150200 (current highmetalprice value)
和第四类:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
Highmetalopen: 150200 ( previous highmetalopenprice value )
HIGHMETALCLOSE: 180200 ( current highmetalopenprice value )
我用find_previous尝试了一些东西,但没有成功。如何循环浏览上一个\下一个价格?
谢谢。
您应该在loop
之外的变量中保留以前的价格,并将其与当前价格循环使用。在循环结束时,您应该将当前价格作为上一个价格,以便在下一个循环中使用。
类似于这个的东西
previous_price = ''
for item in site_json:
pubdebt = item['pubdebt']
publease = item['publeaseroject']
highmetalprice = item['highmetalprice']
print('price current:', highmetalprice)
print('price previous:', previous_price)
# ... work with both prices ...
# assign current to previous for next loop
previous_price = highmetalprice
尝试在列表外创建一个变量,并将这些价格放入该变量
我清楚地理解您的代码,但我的扩展代码是这样的。我的api查询有很多变量,比如CA、DB、AZ、FL、NY等等
"公共债务":CA;publeaseproject":145;highmetalprice":110200,"公共债务":DB;publeaseproject":145;highmetalprice":110200,"公共债务":AZ;publeaseproject":145;highmetalprice":130200,"公共债务":CA;publeaseproject":145;highmetalprice":150200,"公共债务":DB;publeaseproject":145;highmetalprice":180200,"公共债务":AZ;publeaseproject":145;highmetalprice":120200,"公共债务":CA;publeaseproject":145;highmetalprice":110200,"公共债务":DB;publeaseproject":145;highmetalprice":110200,"公共债务":AZ;publeaseproject":145;highmetalprice":130200,"公共债务":CA;publeaseproject":145;highmetalprice":150200,"公共债务":DB;publeaseproject":145;highmetalprice":180200,"公共债务":AZ;publeaseproject":145;highmetalprice":120200,"公共债务":CA;publeaseproject":145;highmetalprice":110200,"公共债务":DB;publeaseproject":145;highmetalprice":110200,"公共债务":AZ;publeaseproject":145;highmetalprice":130200,"公共债务":CA;publeaseproject":145;highmetalprice":150200,"公共债务":DB;publeaseproject":145;highmetalprice":180200,"公共债务":AZ;publeaseproject":145;highmetalprice":120200,
使用多变量会有点困难。我想用开盘价和收盘价来存储所有的价值。我还尝试了在循环中添加+1,比如:
汤=BeautifulSoup(html,'html.parser'(site_json=json.loads(汤.文本(
for i in range(len(site_json)):
pubdebt = site_json[i]['pubdebt']
publease = site_json[i]['publeaseroject']
highmetalprice = site_json[i**+1**]['highmetalprice']
try:
Job.objects.create(
pubdebt=pubdebt,
publeaseroject=publeaseroject,
highmetalprice=highmetalprice,
有什么建议吗?我想我已经接近了。我只是还不知道BeautifulSoup 4。