需要删除 JSON 对象中的数组

Need to remove array in JSON object

我的json对象是:{"values": {"empid": 20000, "empName": "Sourav", "empSal": 8200}} 但我想删除 "Values: "。我怎样才能做到这一点?我在Python写了一段代码。 在后台它正在从 MySQL 获取流数据并发送到 Kinesis。

def main():
  connection = {
    "host": "127.0.0.1",
    "port": int(sys.argv[1]),
    "user": str(sys.argv[2]),
    "passwd": str(sys.argv[3])}
  kinesis = boto3.client("kinesis",region_name='ap-south-1')
  stream = BinLogStreamReader(
            connection_settings=connection,
            only_events=[DeleteRowsEvent, WriteRowsEvent, UpdateRowsEvent],
            server_id=100,
            blocking=True,
            log_file='mysql-bin.000003',
            resume_stream=True,
        )
  for binlogevent in stream:
    for row in binlogevent.rows:
      print (json.dumps(row,cls=DateTimeEncoder)) 
      kinesis.put_record(StreamName=str(sys.argv[4]), Data=json.dumps(row,cls=DateTimeEncoder), 
                         PartitionKey="default",)

如果你想删除 "Values: " from the string thatjson.dumps` 产品,你可以做一个替换:

json_string = json.dumps(row,cls=DateTimeEncoder)
json_string = json_string.replace("Values: ", "")

然后在该字符串上使用 put_record。您的 json 对象是一个字典,因此您不能只从中删除 values: string/key。如果您确实删除了 values 键,则该对象将为空。

您可以调用 row['values'],这将 return values.

中的值

您的代码中的示例是

kinesis.put_record(StreamName=str(sys.argv[4]), Data=json.dumps(row['values'],cls=DateTimeEncoder)