Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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将JSON对象插入MySQL_Python_Mysql_Api - Fatal编程技术网

使用Python将JSON对象插入MySQL

使用Python将JSON对象插入MySQL,python,mysql,api,Python,Mysql,Api,我是python新手,正在研究如何在MySQL表中插入一些JSON 如何使用Python将JSON对象插入MySQL 这是我正在使用的代码 import requests import urllib.request import json import pymysql con = pymysql.connect(host = 'localhost',user = 'root',passwd = 'root',db = 'micro') cursor = con.cursor() url = '

我是python新手,正在研究如何在MySQL表中插入一些JSON

如何使用Python将JSON对象插入MySQL

这是我正在使用的代码

import requests
import urllib.request
import json
import pymysql

con = pymysql.connect(host = 'localhost',user = 'root',passwd = 'root',db = 'micro')
cursor = con.cursor()
url = 'https://api.amazon.com/v1/products(onlineAvailability=true)?pageSize=100&show=upc,sku,salePrice&page=45&callback=JSON_CALLBACK&format=json'
urllib.request.urlopen(url).read()
response = urllib.request.urlopen(url).read()
json_obj = str(response, 'utf-8')

cursor.execute("INSERT INTO bestb (sku, upc, salePrice) VALUES (%s,%s,%s)", (sku, upc, salePrice))
con.commit()
con.close()

print (json_obj)
这是我试图解析的JSON

"products": [
    {
      "upc": "715187763623",
      "sku": 1833591,
      "salePrice": 13.99
    },
    {
      "upc": "8809269504036",
      "sku": 26220187,
      "salePrice": 16.99
    }
  ]
})
提前感谢。

使用
json.loads(string)
将json字符串转换为Python对象。然后你可以用它作为普通的字典和列表

顺便说一句:您的示例中的JSON不正确

response = b'''{"products": [
    {
      "upc": "715187763623",
      "sku": 1833591,
      "salePrice": 13.99
    },
    {
      "upc": "8809269504036",
      "sku": 26220187,
      "salePrice": 16.99
    }
  ]
}'''

json_obj = json.loads(response.decode('utf-8'))

#print(json_obj["products"][0]["upc"])

for product in json_obj["products"]:
    print("upc:", product["upc"])
    print("sku:", product["sku"])
    print("salePrice:", product["salePrice"])
    print('---')
    cursor.execute("INSERT INTO bestb (sku, upc, salePrice) VALUES (%s,%s,%s)", (product["sku"], product["upc"], product["salePrice"]))
使用
json.loads(string)
将json字符串转换为Python对象。然后你可以用它作为普通的字典和列表

顺便说一句:您的示例中的JSON不正确

response = b'''{"products": [
    {
      "upc": "715187763623",
      "sku": 1833591,
      "salePrice": 13.99
    },
    {
      "upc": "8809269504036",
      "sku": 26220187,
      "salePrice": 16.99
    }
  ]
}'''

json_obj = json.loads(response.decode('utf-8'))

#print(json_obj["products"][0]["upc"])

for product in json_obj["products"]:
    print("upc:", product["upc"])
    print("sku:", product["sku"])
    print("salePrice:", product["salePrice"])
    print('---')
    cursor.execute("INSERT INTO bestb (sku, upc, salePrice) VALUES (%s,%s,%s)", (product["sku"], product["upc"], product["salePrice"]))

json_obj=json.loads(response.decode('utf-8'))
然后你可以得到
json_obj[“products”][0][“upc”]
@furas我收到这个错误\Python35-32\lib\json\decoder.py”,第339行,在decode obj中,end=self.raw\decode(s,idx=\w(s,0.end())文件“C:\Users\MTA\AppData\Local\Programs\Python35-32\Python35\32\lib\json\decoder.py”,第357行,在raw_decode中,从None向raise jsondecodecorr(“期望值”,s,err.value)发送json.decoder.jsondecodecorr:期望值:第1行第1列(char 0)什么错误?添加问题。您的JSON格式不正确-它必须以
{
开始,以
}
结束-没有
JSON_obj=JSON.loads(response.decode('utf-8'))
然后您可以得到
JSON_obj[“products”][0][“upc”]
@furas我收到这个错误\Python35-32\lib\JSON\decoder.py,第339行,在decode obj中,end=self.raw_decode(s,idx=_w(s,0.end())文件“C:\Users\MTA\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py”,第357行,在raw_decode中,从None json.decoder中提出jsondecoerror(“期望值”,s,err.value)错误:期望值:第1行第1列(char 0)什么错误?添加问题。您的JSON格式不正确-它必须以
{
开头,以
}
结尾-没有
无法插入到mysql。这是一个错误,从None json.decoder.jsondecoderror:Expecting value:line 1 column 1(char 0)再次引发jsondecoderror(“Expecting value”,s,err.value”)同样的问题-我不知道为什么,但您的json格式不正确。在您的示例中,它在start.btw处缺少
{
。运行url时不使用
callback=JSON\u callback
——它提供的不是JSON结果,而是带有函数
JSON\u callback()的javascript代码
并使用JSON作为函数参数。是的,你是对的。我在没有callback=JSON\u callback的情况下运行了URL,运行得非常好。感谢你的帮助。无法插入到mysql。下面是错误,请从None JSON.decoder.jsondecodecode错误:预期值:第1行第1列(char 0)同样的问题-我不知道为什么,但您的JSON格式不正确。在您的示例中,它在start.btw处缺少
{
。运行url时不使用
callback=JSON\u callback
-它提供的不是JSON结果,而是带有函数
JSON\u callback()的javascript代码
并使用JSON作为函数参数。是的,你说得对。我在运行URL时没有callback=JSON\u callback,效果非常好。谢谢你的帮助。