首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:分析日期时间字符串NumPy时出错

ValueError:分析日期时间字符串NumPy时出错
EN

Stack Overflow用户
提问于 2015-03-17 09:42:51
回答 2查看 8.8K关注 0票数 2

我正在尝试将此字符串日期转换为NumPy数组中的日期格式。我使用datetime64数据类型转换为秒,并收到此错误。我的代码如下。我想将numpy数据类型作为date类型写入我的数据库。

代码语言:javascript
复制
import json
import jsonpickle
import requests
import arcpy
import numpy as np    #NOTE THIS
import random
import timestring




fc = "C:\MYLATesting.gdb\MYLA311Copy"
if arcpy.Exists(fc):
  arcpy.Delete_management(fc)





f2 = open('C:\Users\Administrator\Desktop\DetailView.json', 'r')
data2 = jsonpickle.encode( jsonpickle.decode(f2.read()) )

url2 = "myURL"
headers2 = {'Content-type': 'text/plain', 'Accept': '/'}

r2 = requests.post(url2, data=data2, headers=headers2)
decoded2 = json.loads(r2.text)


dt = np.dtype([('SRAddress', 'U40'),
                ('LatitudeShape', '<f8'),
                ('LongitudeShape', '<f8'),
                ('Latitude', '<f8'),
                ('Longitude', '<f8'),
                ('Type', 'U40'),
                ('SRNumber', 'U40'),
                ('FirstName', 'U40'),
               ('LastName', 'U40'),
               ('HomePhone', 'U40'),
                ('CreateDate', 'datetime64[S]'),
               ('Comment', 'U128'),
                ('ItemInfo', 'U128'),
                ('DayTest', 'U128'),
                ('DistrictName', 'U128'),
                ('ShortDay', 'U128'),
                ('ParentNumber', 'U128'),
                ('A_Call_No','U128'),
                ('Area', 'U128'),
                ('DirectionSuffix','U128'),
                ('DistrictAbbr', 'U128'),
                ('DistrictNumber', 'U128'),
                ('DistrictOffice', 'U128'),
                ('Fraction', 'U128'),
                ('R_Call_No', 'U128'),
                ('SectionId', 'U128'),
                ('StreetTo', 'U128'),
                ('StreetFrom', 'U128'),
                ('StreetLightId', 'U128'),
                ('StreetLightStatus', 'U128'),
                ('Y_Call_No', 'U128'),
                ('CommunityPlanningArea', 'U128'),
                ('LastUpdatedBy', 'U128'),
                ('BOSRadioHolderName', 'U128'),
                ])







items = []
for sr in decoded2['Response']['ListOfServiceRequest']['ServiceRequest']:
    SRAddress = sr['SRAddress']
    Latitude = sr['Latitude']
    Longitude = sr['Longitude']
    SRNumber = sr['SRNumber']
    FirstName = sr['FirstName']
    LastName = sr['LastName']
    HomePhone = sr['HomePhone']
    CreatedDate = sr['CreatedDate']


    print CreatedDate


    ItemInfo = " "

    for ew in sr["ListOfLa311ElectronicWaste"][u"La311ElectronicWaste"]:
            CommodityType = ew['Type']
            ItemType = ew['ElectronicWestType']
            ItemCount = ew['ItemCount']
            ItemInfo += '{0},  {1}, '.format(ItemType, ItemCount)
            ParentNumber = ew['Name']




    for GIS in sr["ListOfLa311GisLayer"][u"La311GisLayer"]:
            Day = GIS['Day']
            DistrictName = GIS['DistrictName']
            ShortDay = GIS['ShortDay']
            A_Call_No = GIS['A_Call_No']
            Area = GIS['Area']
            DirectionSuffix = GIS['DirectionSuffix']
            DistrictAbbr = GIS['DistrictAbbr']
            DistrictNumber = GIS['DistrictNumber']
            DistrictOffice = GIS['DistrictOffice']
            Fraction = GIS['Fraction']
            R_Call_No = GIS['R_Call_No']
            SectionId = GIS['SectionId']
            StreetFrom = GIS ['StreetFrom']
            StreetTo = GIS ['StreetTo']
            StreetLightId = GIS ['StreetLightId']
            StreetLightStatus = GIS['StreetLightStatus']
            Y_Call_No = GIS ['Y_Call_No']
            CommunityPlanningArea = GIS['CommunityPlanningArea']
            LastUpdatedBy = GIS['LastUpdatedBy']
            BOSRadioHolderName = GIS['BOSRadioHolderName']




    comments =  [ cl['Comment'] for cl in sr["ListOfLa311ServiceRequestNotes"][u"La311ServiceRequestNotes"]]
    print comments
    Comment = ' '.join(comments)


items.append((SRAddress,
                          Latitude,
                         Longitude,
                          Latitude,
                          Longitude,
                          CommodityType,
                          SRNumber,
                         FirstName,
                          LastName,
                          HomePhone,
                          CreatedDate,
                          Comment,
                          ItemInfo,
                          Day,
                          DistrictName,
                          ShortDay,
                          ParentNumber,
                         A_Call_No,
                        Area,
                        DirectionSuffix,
                        DistrictAbbr,
                        DistrictNumber,
                        DistrictOffice,
                        Fraction,
                        R_Call_No,
                        SectionId,
                        StreetFrom,
                        StreetTo,
                        StreetLightId,
                        StreetLightStatus,
                        Y_Call_No,
                        CommunityPlanningArea,
                        LastUpdatedBy,
                        BOSRadioHolderName
))


arr = np.array(items,dtype=dt)
sr = arcpy.SpatialReference(4326)


arcpy.da.NumPyArrayToFeatureClass(arr, fc, ['longitudeshape', 'latitudeshape'], sr )


print json.dumps(decoded2, sort_keys=True, indent=4)

  File "C:/Users/Administrator/Desktop/DevSummitJSON_PySeminar.py", line 166, in <module>
    arr = np.array(items,dtype=dt)
ValueError: Error parsing datetime string "02/17/2015 16:53:25" at position 2
EN

回答 2

Stack Overflow用户

发布于 2021-02-13 17:25:04

np.datetime64使用格式yyyy-mm-dd hh:mm:ss

pandas中使用to_datetime()方法,因为它更灵活:

代码语言:javascript
复制
import pandas as pd
pd.to_datetime("02/17/2015 16:53:25")

如果您仍然想使用np.datetime64,那么:

将日期格式更改为yyyy-mm-dd hh:mm:ss

为例:

代码语言:javascript
复制
numpy.datetime64("02/17/2015 16:53:25")
#change above format to:
numpy.datetime64("2015-02-17 16:53:25")
票数 2
EN

Stack Overflow用户

发布于 2015-07-29 01:08:22

看看您收到的错误消息,您输入的日期时间的字符串格式不正确

代码语言:javascript
复制
numpy.datetime64("02/17/2015 16:53:25")
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
ValueError: Error parsing datetime string "02/17/2015 16:53:25" at position 2

numpy.datetime64("2015-02-17T16:53:25")
>>> numpy.datetime64('2015-02-17T16:53:25+0100')

注意,numpy假设时间是在您的本地时区(这里是UTC+1)给定的。附加"Z“,它将被解释为UTC。

因此,您必须更改字符串的格式,或者可以尝试使用pandas表示的here解决方案,它在解释字符串格式方面似乎更灵活

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29089975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档