Разбор Cassandra Json на python

#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'])