xdy0426313 2020-07-30 12:44 采纳率: 0%
浏览 671

在学习flask时,往mysql批量插入数据时出现这样的错误: TypeError: %d format: a number is required, not NoneType

def load_data():
with open('cities.json', 'rb') as cities_json_file:
cities_json_str = cities_json_file.read()
cities_json = json.loads(cities_json_str)
# print(cities_json)
return cities_json

def insertCity(cities_json):
cities = cities_json.get('returnValue')
keys = cities.keys()

db = pymysql.Connect(host='localhost', port=3306, user='root', password='root', database='FlaskTpp', charset='utf8')
cursor = db.cursor()
if not cursor:
    print('数据仓库连失败')

# print(cities)
for key in keys:

    cursor.execute("INSERT INTO letter(letter) VALUE ('%s');" % key)
    db.commit()
    cursor.execute("SELECT letter.id FROM letter WHERE letter='%s'" % key)
    letter_id = cursor.fetchone()[0]

    cities_leter = cities.get(key)
    for city in cities_leter:

        c_id = city.get('id')

        c_parent_id = city.get('parentId')
        c_regionName = city.get('regionName')
        c_cityCpde = city.get('cityCpde')
        c_pinYin = city.get('pinYin')
        cursor.execute("INSERT INTO city_model (letter_id, c_id, c_parent_id, c_region_name, c_city_code, c_pinyin) VALUE (%d,%d,%d,'%s',%d,'%s');"%(letter_id,c_id,c_parent_id,c_regionName,c_cityCpde,c_pinYin))

        db.commit()

图片说明


  • 写回答

2条回答 默认 最新

  • jingluan666 2020-07-30 14:30
    关注

    sql="INSERT INTO city_model (letter_id, c_id, c_parent_id, c_region_name, c_city_code, c_pinyin) VALUE (%d,%d,%d,'%s',%d,'%s');"%(letter_id,c_id,c_parent_id,c_regionName,c_cityCpde,c_pinYin)

    print(sql)

    将sql打印出来就一目了然

    评论

报告相同问题?

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助