#python #json #parsing #cassandra
Вопрос:
Я совершенно новичок в python, и мне нужна помощь в получении данных из столбца JSON в cassandra с использованием python.Я получаю данные в python, но не знаю, как действовать дальше?Должен ли я преобразовать его в фрейм данных или нормализовать json? Я преобразовал его в фрейм данных, но когда я выполняю синтаксический анализ, я получаю ошибку «Ошибка типа:строковые индексы должны быть целыми числами».Это путь json, который я пытаюсь извлечь из печати(k[‘OrderEvent’][‘Источник событий’])
заранее спасибо!
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra.query import dict_factory
#import datetime module to perform datetime operation
from datetime import datetime,timedelta
#import pandas to support dataframe operations
import pandas as pd
import json
#import cx_Oracle module to perform operations in oracle
#import cx_Oracle
auth_provider = PlainTextAuthProvider(username='cassandra', password='cassandra')
cluster = Cluster(["abc.com"],auth_provider = auth_provider)
session = cluster.connect('reporting')
session.row_factory = dict_factory
cluster.connect()
#Initializing empty list
list=[] # List to grab data from cassandra
#function to set format for the timestamp
def timestampconvert(local_format):
return local_format.strftime('%Y-%m-%d %H:%M:%S')
Start = datetime.now()-timedelta(hours=6) #Starttime set to three hours prior to present time
Starttimestamp=timestampconvert(Start) #StartTimestamp after setting its format (for ex: 2019-05-07 12:20:45 )
End = datetime.now() #Endtime set to present time
Endtimestamp=timestampconvert(End) #Timestamp
#cql statement to retrieve the data from cassandra database
cqlStatement = "select order_json from orders limit 3"
#objects retreived from the database is stored in a variable rows
rows = session.execute(cqlStatement)
#Loop to feed the acquired data into a list
for row in rows:
list.append(row)
df = pd.DataFrame(list)
print df
for k in df:
print(k['orderEvent']['eventSource'])