Advertisement
Guest User

Untitled

a guest
Apr 11th, 2019
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. import psycopg2
  2. def insertPostgres(cur,values,tabel):
  3. sql = 'INSERT INTO ' + tabel + ' VALUES (' + values + ')'
  4. cur.execute(sql)
  5. def getMostPurchasedProducts(cur,buids):
  6. product_list = []
  7. counter_list = []
  8. buids= str(buids).strip('[]')
  9. buids = buids.replace('\"', '')
  10. sql='SELECT orders FROM orders WHERE buid IN ('+buids+')'
  11. cur.execute(sql)
  12. row = cur.fetchone()
  13. a=0
  14. while row is not None:
  15. a+=1
  16. if row[0] not in product_list:
  17. product_list.append(row[0])
  18. counter_list.append(1)
  19. else:
  20. counter_list[product_list.index(row[0])] += 1
  21. row = cur.fetchone()
  22. print('im here')
  23. x = 0
  24. topProd=[]
  25. while x < 5:
  26.  
  27. most_sold_id = product_list[counter_list.index(max(counter_list))]
  28. most_sold_count = max(counter_list)
  29. topProd.append(most_sold_id)
  30. counter_list.remove(most_sold_count)
  31. product_list.remove(most_sold_id)
  32. x += 1
  33. return topProd
  34.  
  35. def getBuidInThisTimeInterval(cur):
  36. start_datum = '2018-01-01'
  37. end_datum = '2018-01-09'
  38. datum = start_datum
  39. dagenineenmaand = 32 # In code wordt 31 gebruikt
  40. maandenineenjaar = 13 # In code wordt 12 gebruikt
  41. dag = 1
  42. poproducten = []
  43. buids = []
  44. a=1
  45. while dag != 0:
  46. print(datum)
  47.  
  48. sql = 'SELECT buids FROM sessions WHERE datum LIKE \'' + datum + '\''
  49. cur.execute(sql)
  50.  
  51. row = cur.fetchone()
  52. datum = datum.split('-')
  53. if (row is None and (datum[2] == '29' or datum[2] == '30' or datum[2] == '31')):
  54. skip = 1
  55. else:
  56. skip = 0
  57.  
  58. while row is not None:
  59. buids.append('\'' + row[0] + '\'')
  60. row = cur.fetchone()
  61.  
  62. datum[2] = int(datum[2]) + 1
  63. if datum[2] == dagenineenmaand:
  64. datum[1] = int(datum[1]) + 1
  65. datum[2] = 1
  66. if datum[1] == maandenineenjaar:
  67. datum[0] = int(datum[0]) + 1
  68. datum[1] = 1
  69. if datum[2] in range(0, 10):
  70. datum[2] = str(0) + str(datum[2])
  71. if datum[1] in range(0, 9):
  72. datum[1] = str(0) + str(datum[1])
  73. datum = str(datum[0]) + '-' + str(datum[1]) + '-' + str(datum[2])
  74. if datum == end_datum:
  75. break
  76. if dag % 7 == 0 and skip == 0:
  77. poproducten.append(getMostPurchasedProducts(cur, buids))
  78. print(a)
  79. a=a+1
  80. elif skip == 1:
  81. continue
  82.  
  83. dag = dag + 1
  84. print(poproducten)
  85. for nummer_van_een_week in range(len(poproducten)):
  86. for product in range(len(poproducten[nummer_van_een_week])):
  87. values = []
  88. values.append(nummer_van_een_week+1)
  89. values.append(poproducten[nummer_van_een_week][product])
  90. values = str(values).strip('[]')
  91. values = values.replace('\"', '\'')
  92. insertPostgres(cur,values,'topperweek')
  93. conn.commit()
  94.  
  95. def getTopPerWeek(cur,week):
  96. sql='SELECT product FROM topperweek WHERE week IN ('+str(week)+')'
  97. cur.execute(sql)
  98. row = cur.fetchone()
  99. topProd=[]
  100. while row is not None:
  101. topProd.append(row[0])
  102. row = cur.fetchone()
  103. return(topProd)
  104.  
  105. conn = psycopg2.connect("dbname=AAIproject user=postgres password=123456")
  106. cur = conn.cursor()
  107. #getMostPurchasedProducts(cur)
  108. getBuidInThisTimeInterval(cur)
  109. cur.close()
  110. conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement