Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python从XML获取值_Python_Xml_Beautifulsoup - Fatal编程技术网

使用Python从XML获取值

使用Python从XML获取值,python,xml,beautifulsoup,Python,Xml,Beautifulsoup,我有一个这样的XML,我需要使用pYTHON脚本获取所有元素值的信息。我通过beautiful soup尝试了它,但是它太慢了,而且它正在用标记打印值 <item> <g:id>1212</g:id> <g:title>tile 1</g:title> <g:description>description </g:description> <g:gtin>426567836816</g:gtin

我有一个这样的XML,我需要使用pYTHON脚本获取所有元素值的信息。我通过beautiful soup尝试了它,但是它太慢了,而且它正在用标记打印值

<item>
<g:id>1212</g:id>
<g:title>tile 1</g:title>
<g:description>description </g:description>
<g:gtin>426567836816</g:gtin>
<g:brand>Amazon</g:brand>
<g:mpn>6789</g:mpn>
<g:link>link </g:link>
<g:image_link>link.jpg</g:image_link>
<g:availability>in stock</g:availability>
<g:condition>new</g:condition>
<g:unit_pricing_base_measure>10 g</g:unit_pricing_base_measure>
<g:unit_pricing_measure>50 g</g:unit_pricing_measure>
<g:product_type>type 001</g:product_type>
<g:produkteinheit>50 g</g:produkteinheit>
<g:google_product_category/>
<g:price>250.1</g:price>
<g:shipping>
<g:country>xxx</g:country>
<g:service>DHL</g:service>
<g:price>50</g:price>
</g:shipping>
</item>
有没有比这更好的解决方案,最终我希望它被插入到我的数据库(postgres)中

电流输出: 12
20

如果您感兴趣,可以使用lxml将其添加到熊猫数据帧中。我不认为这是一个重复的问题。上述两个问题是多年前提出来的。“也许现在有更好的解决办法了。”达宾寿同意。这个问题本不应该就此结束。
from bs4 import BeautifulSoup

with open('google-shopping-1.xml') as fp:
    soup = BeautifulSoup(fp, 'lxml')

    for item in soup.findAll('item'):
        id = item.find('g:id')
        title = item.find('g:title')
        description = item.find('g:description')
        gtin = item.find('g:gtin')
        brand = item.find('g:brand')
        mpn = item.find('g:mpn')
        link = item.find('g:link')
        image_link = item.find('g:image_link')
        availability = item.find('g:availability')
        condition = item.find('g:condition')
        unit_pricing_base_measure = item.find('g:unit_pricing_base_measure')
        unit_pricing_measure = item.find('g:g:unit_pricing_measure')
        product_type = item.find('g:product_type')
        produkteinheit = item.find('g:produkteinheit')
        price = item.find('g:price')
        condition = item.find('g:condition')
        print(id)
        #print(title)
        #print(description)
        #print(gtin)
        #print(brand)
        #print(mpn)
        #print(link)
        #print(image_link)
        #print(availability)
        #print(availability)
        #print(condition)
        #print(unit_pricing_base_measure)
        #print(unit_pricing_measure)
        #print(product_type)
        #print(produkteinheit)
        #print(price)
        #print(condition)
        #print("/n")