Python 使用Convtool将特定数据转换为Excel

Python 使用Convtool将特定数据转换为Excel,python,excel,Python,Excel,晚上好 我正在尝试将使用Selenium Pre标记选择的JSON数据导出到CSV文件。我想指定特定数据并将其转换为CSV。为了选择不同类型的数据,我使用Convtool并转换它 例如,这是第页的全部JSON代码: 转换后打印时: 当我尝试运行代码时,收到以下错误: 我相信你已经用一个列表包装了数据。 我还建议您将代码拆分成有意义的部分 导入json 从urllib.parse导入urljoin 从convtools导入转换为c 类您的类名称: 基本链接=您的基本链接位于此处 def fetch

晚上好

我正在尝试将使用Selenium Pre标记选择的JSON数据导出到CSV文件。我想指定特定数据并将其转换为CSV。为了选择不同类型的数据,我使用Convtool并转换它

例如,这是第页的全部JSON代码:

转换后打印时:

当我尝试运行代码时,收到以下错误:


我相信你已经用一个列表包装了数据。 我还建议您将代码拆分成有意义的部分

导入json 从urllib.parse导入urljoin 从convtools导入转换为c 类您的类名称: 基本链接=您的基本链接位于此处 def fetch_页自身,k: url=urljoinself.base\u链接,strk 打印设置{url} self.driver.geturl TODO:在没有元素时处理 添加等待代码 element=self.driver.find_element_by_tag_namepre 返回元素和element.text 定义页面本身: 对于范围为11468、11470、1的k: data=self.fetch\u pagek 如果数据为无: printfailed加载页面{k},正在跳过 持续 产生json.loadsdata def fetch_allself: 你可以把这个移出课堂 convert=c.list\u comp { f_namn:c.itemdata,name, 组织编号:c.itemdata,组织编号, 电话号码:c 数据,centralPhoneNumber,规范化 , } .gen_转换器安装黑色以查看格式化源 数据=convertself.iter\u页面 返回数据 def转储到自身: 您的to_excel代码位于此处 YourClassName.fetch\u all
{"getUrl":"/395012/Organization/pase11469","className":"Organization","data":{"name":"Förskola Garphyttan","organizationNumber":"212000-1967","centralPhoneNumber":{"value":"019-215030","normalized":"+4619215030","className":"PhoneNumber","isEmpty":false},"faxPhoneNumber":{"value":null,"normalized":null,"className":"PhoneNumber","isEmpty":true},"website":"www.orebro.se","email":{"value":"","className":"Email"},"dateLastModified":"\/Date(-62135596800000)\/","visitAddress":{"street":"Kilsvägen 2 B","zipCode":"719 40","city":"GARPHYTTAN","countryCode":""},"postalAddress":{"street":"Kilsvägen 2 B","zipCode":"719 40","city":"GARPHYTTAN","countryCode":""},"responsibleCoworker":null,"integrationid":null,"customFields":[],"relation":0,"tags":null,"headOffice":{"id":"pase276386","getUrl":"/395012/Organization/pase276386","className":"Organization","heading":"Örebro kommun","subHeading":"Örebro","categorization":null,"isDeleted":false},"corporateGroup":{"id":"pase276386","getUrl":"/395012/Organization/pase276386","className":"Organization","heading":"Örebro kommun","subHeading":"Örebro","categorization":null,"isDeleted":false},"sharedBody":{"vatNumber":"SE212000196701","lineOfBusiness":"Förskoleutbildning","businessDescription":null,"legalForm":"Kommun","dateOfRegistration":"1975-07-01","legalName":"Örebro kommun","rating":null,"numberOfSubsidaries":2,"numberOfEmployeesRange":">10000","numberOfEmployeesWorkSite":"10 - 19","dividends":null,"employeeGrowth":null,"equityRatio":null,"quickRatio":null,"resultBeforeTax":null,"salariesBoardMembers":null,"salariesOthers":null,"turnoverGrowth":null,"turnover":null,"numberOfEmployees":null,"averageSalaryPerEmployee":null,"turnoverPerEmployee":null,"profitMargin":null,"resultAfterFinancialItems":null,"ebita":null},"temperature":0},"actions":{"getHistory":"/395012/Organization/pase11469/getHistory","getFuture":"/395012/Organization/pase11469/getFuture","getDocuments":"/395012/Organization/pase11469/getDocuments","getEmployees":"/395012/Organization/pase11469/getEmployees","getDeals":"/395012/Organization/pase11469/getDeals","addFileForm":"/395012/Organization/pase11469/addFileForm","addFile":"/395012/Organization/pase11469/addFile","addLink":"/395012/Organization/pase11469/addLink","update":"/395012/Organization/pase11469/update","setResponsibleCoworker":"/395012/Organization/pase11469/setResponsibleCoworker","follow":"/395012/Organization/pase11469/follow","setRelation":"/395012/Organization/pase11469/setRelation","getSuggestedPersons":"/395012/SuggestedPersons/pase11469/getForOrganization","searchEmployees":"/395012/OrganizationSearch/pase11469/employees","getEmployeeTemplate":"/395012/Person/GetTemplate?employerId=pase11469","addToTargetList":"/395012/targetAppender/appendOrganization?organizationId=pase11469","addTag":"/395012/Organization/pase11469/addTag","removeTag":"/395012/Organization/pase11469/removeTag","getUnassignedTags":"/395012/Organization/pase11469/getUnassignedTags","addNewTag":"/395012/Organization/pase11469/addNewTag","createTodo":"/395012/todo/create?organizationId=pase11469","getMeetingTemplate":"/395012/Meeting/getTemplate?OrganizationId=pase11469"},"id":"pase11469","heading":"Förskola Garphyttan","subHeading":"Garphyttan","source":{"data":{},"conflicts":null},"whoIsHere":[],"isTouched":false,"isFollowing":false,"errors":null,"categorization":["branchoffice","subsidiary"],"relatedCategorizations":{"/395012/Organization/pase276386":["headoffice","corporategroup"]}}
    [[{'f_namn': 'Two Cents AB', 'org_nr': '556424-4381', 'Phone Number': None}]]
[[{'f_namn': 'Two Cents AB', 'org_nr': '556424-4381', 'Phone Number': None}], [{'f_namn': 'Förskola Garphyttan', 'org_nr': '212000-1967', 'Phone Number': '+4619215030'}]]
File "c:\Users\Tobias\Projects\Lime-GO\Lime-GO.py", line 98, in find_company
    xd = pd.json_normalize(prepared_data)
  File "C:\Users\Tobias\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\json\_normalize.py", line 270, in _json_normalize
    if any([isinstance(x, dict) for x in y.values()] for y in data):
  File "C:\Users\Tobias\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\json\_normalize.py", line 270, in <genexpr>
    if any([isinstance(x, dict) for x in y.values()] for y in data):
AttributeError: 'list' object has no attribute 'values'
lst = []
        for k in range(11468, 11470, 1):
            link = baseLink + str(k)
            self.driver.get(link)

            # Convert what I want
            converter = c.list_comp(
                {
                    "f_namn": c.item("data", "name"),
                    "org_nr": c.item("data", "organizationNumber"),
                    "Phone Number": c.item("data", "centralPhoneNumber", "normalized"),
                }
            ).gen_converter()  # install "black" to see formatted sources

            res = self.driver.find_element_by_tag_name("pre").text
            lst.append(converter([json.loads(res)]))

            prepared_data = lst
            xd = pd.json_normalize(prepared_data)
            xd.to_excel("list.xlsx", index=False, sheet_name="Sheet2")