我正在解析一个网站并想要写入 MySQL。特定字段下的每个url需要解析11个字段。
from bs4 import BeautifulSoup
import requests
import urllib.request
import csv
import pymysql
con = pymysql.connect(host = 'localhost',user = 'root',passwd = 'root',db = 'micro')
with open(r"C:\Users\New folder\url_list.txt") as f:
urls = [u.strip('\n') for u in f.readlines()]
page = 0
while page < 1000:
try:
soup = BeautifulSoup(requests.get(urls[page]).content, "html.parser")
text = soup.select("head script[type=text/javascript]")[-1].text
start = text.find('dataLayer =') + len('dataLayer =')
end = text.rfind(';')
rows = text[start:end].strip().split('\n')
except:
pass
for d in rows:
print(d)
page = page + 1
print(page)
这是我的 JSON 文件
[{
'page':'ProductPage',
'OAM':'False',
'storeNum':'029',
'brand':'ASUS',
'productPrice':'199.99',
'SKU':'576181',
'productID':'443759',
'mpn':'RT-AC3200',
'ean':'886227780914',
'category':'Wireless Routers',
'isMobile':'False'
}]
[{
'page':'ProductPage',
'OAM':'False',
'storeNum':'029',
'brand':'Linksys',
'productPrice':'79.99',
'SKU':'244129',
'productID':'432549',
'mpn':'EA6350',
'ean':'745883644780',
'category':'Wireless Routers',
'isMobile':'False'
}]
如何将这个 JSON 映射到 MYSQL。这是我需要的输出。 Here is what i need提前致谢。
最佳答案
这是一种使用现有数据填充 SQL 插入语句的粗略方法。
rows=[
[{
'page':'ProductPage',
'OAM':'False',
'storeNum':'029',
'brand':'ASUS',
'productPrice':'199.99',
'SKU':'576181',
'productID':'443759',
'mpn':'RT-AC3200',
'ean':'886227780914',
'category':'Wireless Routers',
'isMobile':'False'
}],
[{
'page':'ProductPage',
'OAM':'False',
'storeNum':'029',
'brand':'Linksys',
'productPrice':'79.99',
'SKU':'244129',
'productID':'432549',
'mpn':'EA6350',
'ean':'745883644780',
'category':'Wireless Routers',
'isMobile':'False'
}]
]
for d in rows:
sql = "insert into tableName \n( "
recordInfo=d[0]
sql += ' '. join ([field for field in recordInfo] )
sql += ') \nvalues ( '
sql += ('***, '*len(recordInfo))[:-2]
sql += ') **** \n('
sql += ', '.join (["'%s'" % recordInfo[field] for field in recordInfo])
sql += ')'
print (sql)
#~ con.execute(sql.replace('****', '%').replace('***',"'%s'"))
关于python - 将 JSON 文件映射到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40193901/