错误psycopg2.programmingerror:can can Adapt Type' dict;来自Pokejson
无法插入SQL表中的前100个口袋妖怪来自Pokeapi
import psycopg2
import json
import myutils
import requests
conn=psycopg2.connect(
host='host',database='database',
user='user',password='password',
connect_timeout=3)
cur=conn.cursor()
sql='DROP TABLE IF EXISTS pokeapi;'
cur.execute(sql)
conn.commit()
print(sql)
sql = 'CREATE TABLE IF NOT EXISTS pokeapi (id SERIAL,body JSONB);'
cur.execute(sql)
conn.commit()
print(sql)
for i in range(1,101):
url='https://pokeapi.co/api/v2/pokemon/%s' % (str(i))
response = requests.get(url)
text = response.text
js = json.loads(text)
stuff = js.get('forms', None)
sql='INSERT INTO pokeapi VALUES (%s)'
cur.execute(sql,(stuff,))
conn.commit()
print(sql)
错误
psycopg2.ProgrammingError: can't adapt type 'dict'
这是我注意到JSON结构的
"species":{"name":"bulbasaur","url":"https://pokeapi.co/api/v2/pokemon-species/1/"}
Can't insert into SQL table the first 100 Pokemon from PokeApi
import psycopg2
import json
import myutils
import requests
conn=psycopg2.connect(
host='host',database='database',
user='user',password='password',
connect_timeout=3)
cur=conn.cursor()
sql='DROP TABLE IF EXISTS pokeapi;'
cur.execute(sql)
conn.commit()
print(sql)
sql = 'CREATE TABLE IF NOT EXISTS pokeapi (id SERIAL,body JSONB);'
cur.execute(sql)
conn.commit()
print(sql)
for i in range(1,101):
url='https://pokeapi.co/api/v2/pokemon/%s' % (str(i))
response = requests.get(url)
text = response.text
js = json.loads(text)
stuff = js.get('forms', None)
sql='INSERT INTO pokeapi VALUES (%s)'
cur.execute(sql,(stuff,))
conn.commit()
print(sql)
This is the error I'm getting
psycopg2.ProgrammingError: can't adapt type 'dict'
Notice the JSON structure
"species":{"name":"bulbasaur","url":"https://pokeapi.co/api/v2/pokemon-species/1/"}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须适应python dict dict to json 在传递时,范围。
You must adapt the python dict to Json when passing it as a query parameter.