Skip to content

Instantly share code, notes, and snippets.

@edgarrmondragon
Created July 16, 2020 01:45
Show Gist options
  • Save edgarrmondragon/390a6b927be7cf4a7753e875d40a7fc9 to your computer and use it in GitHub Desktop.
Save edgarrmondragon/390a6b927be7cf4a7753e875d40a7fc9 to your computer and use it in GitHub Desktop.
Patents
{
"PatentBulkData": [
{
"patentCaseMetadata":{
"applicationNumberText":{
"value":"16732312",
"electronicText":"16732312"
},
"filingDate":"2020-01-01",
"applicationTypeCategory":"Utility",
"partyBag":{
"applicantBagOrInventorBagOrOwnerBag":[
{
"primaryExaminerOrAssistantExaminerOrAuthorizedOfficer":[
{
"name":{
"personNameOrOrganizationNameOrEntityName":[
{
"personFullName":"ORGAD, EDAN"
}
]
}
}
]
},
{
"applicant":[
{
"contactOrPublicationContact":[
{
"name":{
"personNameOrOrganizationNameOrEntityName":[
{
"organizationStandardName":{
"content":[
"Communication Systems LLC"
]
}
}
]
},
"cityName":"Santa Fe",
"geographicRegionName":{
"value":"NM",
"geographicRegionCategory":"STATE"
},
"countryCode":""
}
]
}
]
}
]
},
"groupArtUnitNumber":{
"value":"2414",
"electronicText":"2414"
},
"applicationConfirmationNumber":"8996",
"applicantFileReference":"CS1003US03",
"patentClassificationBag":{
"cpcClassificationBagOrIPCClassificationOrECLAClassificationBag":[
{
"ipOfficeCode":"US",
"mainNationalClassification":{
"nationalClass":"370",
"nationalSubclass":"329000"
}
}
]
},
"businessEntityStatusCategory":"SMALL",
"firstInventorToFileIndicator":"true",
"inventionTitle":{
"content":[
"APPARATUSES, METHODS, AND COMPUTER-READABLE MEDIUM FOR COMMUNICATION IN A WIRELESS LOCAL AREA NETWORK"
]
},
"applicationStatusCategory":"Docketed New Case - Ready for Examination",
"applicationStatusDate":"2020-02-07",
"officialFileLocationCategory":"ELECTRONIC",
"patentPublicationIdentification":{
"publicationNumber":"US20200154403A1",
"publicationDate":"2020-05-14"
}
},
"prosecutionHistoryDataBag":{
"prosecutionHistoryData":[
{
"eventDate":"2020-05-19",
"eventCode":"PG-ISSUE",
"eventDescriptionText":"PG-Pub Issue Notification"
}
]
},
"assignmentDataBag":{
"assignmentData":[
{
"reelNumber":"52436",
"frameNumber":"295",
"documentReceivedDate":"2020-04-20",
"recordedDate":"2020-04-20",
"mailDate":"2020-04-21",
"pageTotalQuantity":3,
"conveyanceText":"ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).",
"assignorBag":{
"assignor":[
{
"executionDate":"2016-07-14",
"contactOrPublicationContact":[
{
"name":{
"personNameOrOrganizationNameOrEntityName":[
{
"value":"ATEFI, ALI"
}
]
}
}
]
}
]
},
"assigneeBag":{
"assignee":[
{
"contactOrPublicationContact":[
{
"name":{
"personNameOrOrganizationNameOrEntityName":[
{
"value":"COMMUNICATION SYSTEMS LLC"
}
]
},
"postalAddressBag":{
"postalAddress":[
{
"postalAddressText":[
{
"sequenceNumber":"1",
"value":"530-B HARKLE ROAD"
},
{
"sequenceNumber":"2",
"value":"STE. 100"
},
{
"sequenceNumber":"3",
"value":"SANTA FE NEW MEXICO 87505"
}
]
}
]
}
}
]
}
]
},
"correspondenceAddress":{
"partyIdentifierOrContact":[
{
"name":{
"personNameOrOrganizationNameOrEntityName":[
{
"value":"ALI ATEFI"
}
]
},
"postalAddressBag":{
"postalAddress":[
{
"postalAddressText":[
{
"sequenceNumber":"1",
"value":"530-B HARKLE ROAD"
},
{
"sequenceNumber":"2",
"value":"STE. 100"
},
{
"sequenceNumber":"3",
"value":"SANTA FE, NM 87505"
}
]
}
]
}
}
]
},
"sequenceNumber":"1"
}
],
"assignmentTotalQuantity":1
},
"st96Version":"V3_1",
"ipoVersion":"US_V8_0"
}
]
}
import json
from jsonpath_rw import parse
with open("./examiner.json") as f:
data = json.load(f)
patent_expr = parse("PatentBulkData[*]")
people_expr = parse("patentCaseMetadata.partyBag.applicantBagOrInventorBagOrOwnerBag[*]")
examiner_expr = parse(
"primaryExaminerOrAssistantExaminerOrAuthorizedOfficer[0]"
".name.personNameOrOrganizationNameOrEntityName[0].personFullName"
)
applicant_expr = parse(
"applicant[0].contactOrPublicationContact[0]"
".name.personNameOrOrganizationNameOrEntityName[0]"
".organizationStandardName.content[0]"
)
records = []
for patent_match in patent_expr.find(data):
record = {}
patent_case = patent_match.value
record["filingDate"] = patent_case["patentCaseMetadata"]["filingDate"]
for party_match in people_expr.find(patent_case):
party = party_match.value
if "primaryExaminerOrAssistantExaminerOrAuthorizedOfficer" in party:
examiner_matches = examiner_expr.find(party)
record["examiner"] = examiner_matches[0].value
elif "applicant" in party:
applicant_matches = applicant_expr.find(party)
record["applicant"] = applicant_matches[0].value
records.append(record)
print(records)
# [{'filingDate': '2020-01-01', 'examiner': 'ORGAD, EDAN', 'applicant': 'Communication Systems LLC'}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment