transformContact.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import os
  2. os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
  3. from dataSource.source import *
  4. from utils.Utils import *
  5. def getContactjson(companyname,contact_person,mobile_no,phone_no,mail):
  6. if mobile_no!="" or phone_no!="":
  7. _dict = dict()
  8. _dict["company"] = companyname
  9. _dict["contact_person"] = contact_person
  10. _dict["mobile_no"] = mobile_no
  11. _dict["phone_no"] = phone_no
  12. _dict["mail"] = mail
  13. _dict["level"] = 40
  14. return re.sub('\'','',json.dumps([_dict],ensure_ascii=False))
  15. return json.dumps([])
  16. mobile_pattern = re.compile("^1\d{10}$")
  17. def recog_likeType(phone):
  18. if re.search(mobile_pattern,phone) is not None:
  19. return "mobile"
  20. else:
  21. return "phone"
  22. def transform_contact():
  23. conn_target = getConnection_testmysql()
  24. conn_source = getConnection_oracle()
  25. cursor_target = conn_target.cursor()
  26. cursor_source = conn_source.cursor()
  27. # sql = "select companyname,contact,landline,mobilephone from bxkc.HUI_CONG_CONPANYINFO"
  28. # cursor_source.execute(sql)
  29. #
  30. # rows = cursor_source.fetchmany(10)
  31. # _count = len(rows)
  32. # while rows:
  33. # list_json = []
  34. # for row in rows:
  35. # company = row[0]
  36. # contact_person = row[1]
  37. # phone_no = ""
  38. # if row[2]!='86':
  39. # phone_no = row[2]
  40. # mobile_no = ""
  41. # if row[3] is not None and re.search("\*",row[3]) is None:
  42. # mobile_no = row[3]
  43. # if phone_no!="" or mobile_no!="":
  44. # list_json.append(getContactjson(company,contact_person,mobile_no,phone_no,""))
  45. # sql = "insert into bxkc.company_contact_json(json_contact) values ('"+"'),('".join(list_json)+"')"
  46. # cursor_target.execute(sql)
  47. # rows = cursor_source.fetchmany(50000)
  48. # _count += len(rows)
  49. # print(_count)
  50. # sql = "select company_name,company_contact_person,company_contact_num,company_mail from bxkc.bxkc_gongyingshang_info"
  51. # cursor_source.execute(sql)
  52. #
  53. # rows = cursor_source.fetchmany(10)
  54. # _count = len(rows)
  55. # while rows:
  56. # list_json = []
  57. # for row in rows:
  58. # company = row[0]
  59. # contact_person = row[1]
  60. # phone_no = ""
  61. # mobile_no = ""
  62. # company_contact_num = row[2]
  63. # company_mail = row[3]
  64. # if company_contact_num is not None:
  65. # if recog_likeType(company_contact_num)=="mobile":
  66. # mobile_no = company_contact_num
  67. # else:
  68. # phone_no = company_contact_num
  69. # if company_mail is not None:
  70. # mail = company_mail
  71. # else:
  72. # mail = ''
  73. # if phone_no!="" or mobile_no!="":
  74. # list_json.append(getContactjson(company,contact_person,mobile_no,phone_no,mail))
  75. # sql = "insert into bxkc.company_contact_json(json_contact) values ('"+"'),('".join(list_json)+"')"
  76. # cursor_target.execute(sql)
  77. # rows = cursor_source.fetchmany(50000)
  78. # _count += len(rows)
  79. # print(_count)
  80. sql = "select company_name,contact_person,mobile_no from bxkc.bxkc_enterprise_listing_info"
  81. cursor_source.execute(sql)
  82. rows = cursor_source.fetchmany(10)
  83. _count = len(rows)
  84. while rows:
  85. list_json = []
  86. for row in rows:
  87. company = row[0]
  88. contact_person = row[1]
  89. phone_no = ""
  90. mobile_no = ""
  91. company_contact_num = row[2]
  92. if company_contact_num is not None:
  93. if recog_likeType(company_contact_num)=="mobile":
  94. mobile_no = company_contact_num
  95. else:
  96. phone_no = company_contact_num
  97. mail = ''
  98. if phone_no!="" or mobile_no!="":
  99. list_json.append(getContactjson(company,contact_person,mobile_no,phone_no,mail))
  100. sql = "insert into bxkc.company_contact_json(json_contact) values ('"+"'),('".join(list_json)+"')"
  101. cursor_target.execute(sql)
  102. rows = cursor_source.fetchmany(50000)
  103. _count += len(rows)
  104. print(_count)
  105. conn_target.commit()
  106. if __name__=="__main__":
  107. transform_contact()