简体   繁体   English

无法将 Java 脚本代码的 output 的特定部分转换为 Python 字典或列表格式

[英]Inability to convert a specific part of the output of the Java script code to Python dictionary or list format

import requests
from bs4 import BeautifulSoup


url="https://covid19.saglik.gov.tr/"
R=requests.get(url)             


soup=BeautifulSoup(R.content,"html.parser" )
script=soup.find_all("script")[18]

s=str(script).split('\nvar sondurumjson = ')
#print(s[1])

a=str(s[1])
b=a.split("\r")
#print(b[0])


c=b[0].partition(';')
data=c[0] 
   

Hello, My main aim is be able to print out the specific key strings and their values from above the website.您好,我的主要目标是能够从网站上方打印出特定的键字符串及其值。 For example: print(data["tarih"]), print(data["gunluk_test"]), print(data["gunluk_vaka"] etc. and I am be able to getting a output named data but data output is a string and this string contains a nested list and dictionary. In order to use data properly, I have to take it as only dictionary or list format. How can I do that or Or could you show me if there is an easier way to achieve my goal?例如: print(data["tarih"]), print(data["gunluk_test"]), print(data["gunluk_vaka"] 等,我可以得到一个 output 命名的数据,但数据 output 是一个字符串并且这个字符串包含一个嵌套列表和字典。为了正确使用数据,我必须将它作为唯一的字典或列表格式。我该怎么做,或者如果有更简单的方法来实现我的目标,你能告诉我吗?

my console output:我的控制台 output:

In [388]:data在 [388] 中:数据

Out[388]: '[{"tarih":"14.05.2021","gunluk_test":"203.073","gunluk_vaka":"11.394","gunluk_hasta":"1.102","gunluk_vefat":"242","gunluk_iyilesen":"37.261","toplam_test":"50.463.016","toplam_hasta":"5.095.390","toplam_vefat":"44.301","toplam_iyilesen":"4.894.024","toplam_yogun_bakim":"","toplam_entube":"","hastalarda_zaturre_oran":"4,0","agir_hasta_sayisi":"2.670","yatak_doluluk_orani":"43,7","eriskin_yogun_bakim_doluluk_orani":"65,0","ventilator_doluluk_orani":"32,4","ortalama_filyasyon_suresi":"","ortalama_temasli_tespit_suresi":"8","filyasyon_orani":"99,9"}]'输出[388]: '[{"tarih":"14.05.2021","gunluk_test":"203.073","gunluk_vaka":"11.394","gunluk_hasta":"1.102","gunluk_vefat":"242", "gunluk_iyilesen":"37.261","toplam_test":"50.463.016","toplam_hasta":"5.095.390","toplam_vefat":"44.301","toplam_iyilesen":"4.894.024","toplam_yogun_bakim": "","toplam_entube":"","hastalarda_zaturre_oran":"4,0","agir_hasta_sayisi":"2.670","yatak_doluluk_orani":"43,7","eriskin_yogun_bakim_doluluk_orani":"65,0","ventilator_doluluk_orani ":"32,4","ortalama_filyasyon_suresi":"","ortalama_temasli_tespit_suresi":"8","filyasyon_orani":"99,9"}]'

The string in data containing nested list and dictionary can be easily interpreted further using json module in python.使用json模块可以轻松地进一步解释包含嵌套列表和字典的data中的字符串。

import json
data = json.loads(data)

print(data)
[{u'gunluk_hasta': u'1.102', u'gunluk_iyilesen': u'37.261', u'toplam_iyilesen': u'4.894.024', u'ortalama_temasli_tespit_suresi': u'8', u'toplam_entube': u'', u'toplam_test': u'50.463.016', u'ortalama_filyasyon_suresi': u'', u'hastalarda_zaturre_oran': u'4,0', u'yatak_doluluk_orani': u'43,7', u'toplam_yogun_bakim': u'', u'gunluk_test': u'203.073', u'gunluk_vaka': u'11.394', u'gunluk_vefat': u'242', u'ventilator_doluluk_orani': u'32,4', u'agir_hasta_sayisi': u'2.670', u'eriskin_yogun_bakim_doluluk_orani': u'65,0', u'toplam_vefat': u'44.301', u'toplam_hasta': u'5.095.390', u'filyasyon_orani': u'99,9', u'tarih': u'14.05.2021'}]

data is now a list containing the dictionary. data现在是一个包含字典的列表。 You can simply extract your desired values now:您现在可以简单地提取所需的值:

print(data[0]['gunluk_test'])
203.073

print(data[0]['tarih'])
'14.05.2021'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM