<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Update\change features data source. in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45941#M3679</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I saw that i missed the parentheses but after putting in the right syntax it still gives me the same error..?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Dec 2021 21:47:42 GMT</pubDate>
    <dc:creator>TonyAlmeida</dc:creator>
    <dc:date>2021-12-10T21:47:42Z</dc:date>
    <item>
      <title>Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45937#M3675</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have some layers that i need to change the data source for.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The current script i have gives me the following error. I don't know why.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if anyone would be kind to help me out please?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import arcpy
from arcpy import env
from arcpy import mapping

workspace = arcpy.env.workspace =&amp;nbsp; "C:/GIS/MAPBOOK/Proposed Zoning Book"

arcpy.env.overwriteOutput = True

mxdList = arcpy.ListFiles("*.mxd")

for mxd in mxdList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = workspace + "//" + mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd): 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd): 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Error&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 13, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; layers = self.layers
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers
&amp;nbsp;&amp;nbsp;&amp;nbsp; for frame in reversed(self.dataFrames):
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames
&amp;nbsp;&amp;nbsp;&amp;nbsp; return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout)
AttributeError: 'unicode' object has no attribute '_arc_object'
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jan 2014 21:10:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45937#M3675</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2014-01-28T21:10:55Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45938#M3676</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Within your Layer Loops, you're interrogating the Layer.name property. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits")
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Problem is, your ListLayers function did not return Layer Objects so you can't interrogate the Layer.name property.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Check out the third line of the Discussion section on the &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//00s30000002n000000" rel="nofollow noopener noreferrer" target="_blank"&gt;ListLayers Help Document&lt;/A&gt;&lt;SPAN&gt;. In order for the ListLayers function to return a Layer Object, you must use an index value on the List like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits")
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Crazy, I didn't know that myself until I investigated your issue. I've just always done it out of habbit.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45938#M3676</guid>
      <dc:creator>JohnDye</dc:creator>
      <dc:date>2021-12-10T21:47:34Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45939#M3677</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am still getting the same error with the code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
from arcpy import env
from arcpy import mapping

workspace = arcpy.env.workspace =&amp;nbsp; "C:/GIS/MAPBOOK/Proposed Zoning Book"

arcpy.env.overwriteOutput = True

mxdList = arcpy.ListFiles("*.mxd")

for mxd in mxdList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = workspace + "//" + mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd[0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t**a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t**a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()


&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45939#M3677</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:47:37Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45940#M3678</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Looks like you missed the parenthesis to close out the ListLayers argument.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
for lyr in arcpy.mapping.ListLayers(mxd[0]:
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Use this instead:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45940#M3678</guid>
      <dc:creator>JohnDye</dc:creator>
      <dc:date>2021-12-10T21:47:39Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45941#M3679</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I saw that i missed the parentheses but after putting in the right syntax it still gives me the same error..?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45941#M3679</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:47:42Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45942#M3680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Can you see if the mxd variable is being properly populated from the list you generate?&amp;nbsp; Maybe print out the variable in your code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = workspace + "//" + mxd&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2014 14:35:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45942#M3680</guid>
      <dc:creator>MichaelVolz</dc:creator>
      <dc:date>2014-01-29T14:35:44Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45943#M3681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Why are you resetting mxd once you start to loop over the list of these mxd's?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
mxdList = arcpy.ListFiles("*.mxd")
for mxd in mxdList: #&amp;lt;-- you already have the mxd set here
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = workspace + "//" + mxd #&amp;lt;-- now you are changing it right after you start the loop?&amp;nbsp; why?
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd[0]): #&amp;lt;--mxd is likely incorrect now
&lt;/PRE&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Instead, remove the mxd setting after the loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
mxdList = arcpy.ListFiles("*.mxd")
for mxd in mxdList: #&amp;lt;-- you already have the mxd set here, just keep it like that
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd[0]): #&amp;lt;--mxd should now be fine
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45943#M3681</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2021-12-10T21:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45944#M3682</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I set to print out variable i got the following.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
C:/GIS/MAPBOOK/Proposed Zoning Book//Proposed_ZoningMapBook_Page_1.mxd is being processed

Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 14, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; layers = self.layers
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers
&amp;nbsp;&amp;nbsp;&amp;nbsp; for frame in reversed(self.dataFrames):
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames
&amp;nbsp;&amp;nbsp;&amp;nbsp; return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout)
AttributeError: 'unicode' object has no attribute '_arc_object'
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Removing the mxd = workspace + "//" + mxd gives me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 12, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; layers = self.layers
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers
&amp;nbsp;&amp;nbsp;&amp;nbsp; for frame in reversed(self.dataFrames):
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames
&amp;nbsp;&amp;nbsp;&amp;nbsp; return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout)
AttributeError: 'unicode' object has no attribute '_arc_object'
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45944#M3682</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:47:47Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45945#M3683</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;C:/GIS/MAPBOOK/Proposed Zoning Book//Proposed_ZoningMapBook_Page_1.mxd is being processed&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not sure if this is the cause of your problem but you have 1 set of // in your path but the other parts of the path are separated by /.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2014 15:10:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45945#M3683</guid>
      <dc:creator>MichaelVolz</dc:creator>
      <dc:date>2014-01-29T15:10:10Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45946#M3684</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Why would it be adding&amp;nbsp; // in the print of C:\GIS\MAPBOOK\Proposed Zoning Book//Proposed_ZoningMapBook_Page_1.mxd is being processed???&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is giving me a headache....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried the follwoing and it gives me the same error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
from arcpy import env
from arcpy import mapping

workspace = arcpy.env.workspace =&amp;nbsp; "C:\GIS\MAPBOOK\Proposed Zoning Book"

arcpy.env.overwriteOutput = True

mxdList = arcpy.ListFiles("*.mxd")

for mxd in mxdList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = workspace + "//" + mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxd + " is being processed"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(mxd)
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.findAndReplaceWorkspacePaths(r"C:\Documents and Settings\talmeida\Application Data\ESRI\ArcCatalog\DSDccarcsde.sde",r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DBO.DSD.VECTOR.sde")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "FILEGDB_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd) [0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Error for the following code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
C:\GIS\MAPBOOK\Proposed Zoning Book//Proposed_ZoningMapBook_Page_1.mxd is being processed

Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 14, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd)[0]:
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers
&amp;nbsp;&amp;nbsp;&amp;nbsp; layers = self.layers
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers
&amp;nbsp;&amp;nbsp;&amp;nbsp; for frame in reversed(self.dataFrames):
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames
&amp;nbsp;&amp;nbsp;&amp;nbsp; return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout)
AttributeError: 'unicode' object has no attribute '_arc_object'

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45946#M3684</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:47:50Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45947#M3685</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Try changing mxd = workspace + "//" + mxd&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;to &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = workspace + "/" + mxd&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not sure if this will work either as that might be an escape character.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe try mxd = workspace + r"/" + mxd&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2014 15:42:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45947#M3685</guid>
      <dc:creator>MichaelVolz</dc:creator>
      <dc:date>2014-01-29T15:42:41Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45948#M3686</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This works to get you past the problem of referencing the layers in each of the .mxd's (I am just printing them lyr name, but you could continue to implement your desired process from that point on):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import os
import arcpy

path = r'C:\GIS\MAPBOOK\Proposed Zoning Book'
for fileName in os.listdir(path):
&amp;nbsp;&amp;nbsp; fullPath = os.path.join(path, fileName)
&amp;nbsp;&amp;nbsp; if os.path.isfile(fullPath):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; basename, extension = os.path.splitext(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if extension == ".mxd":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print lyr

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;edit: you&amp;nbsp; need to add the import os&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"fullpath" references corrected to "fullPath" throughout.&amp;nbsp; sorry (case is important!).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45948#M3686</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2021-12-10T21:47:52Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45949#M3687</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I started a new window and retyped the script and i got past the AttributeError: 'unicode' object has no attribute '_arc_object' error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but none of the workspace paths were updated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;it error out on me on line 18.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
C:\GIS\MAPBOOK\Proposed Zoning Book\Proposed_ZoningMapBook_Page_1.mxd is being processed

Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 18, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "SDE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\_mapping.py", line 680, in replaceDataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._arc_object.replaceDataSource(*gp_fixargs((workspace_path, workspace_type, dataset_name, validate), True)))
ValueError: Layer: Unexpected error
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CODE&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
from arcpy import env
from arcpy import mapping

workspace = arcpy.env.workspace =&amp;nbsp; "C:\GIS\MAPBOOK\Proposed Zoning Book"

arcpy.env.overwriteOutput = True

mxdList = arcpy.ListFiles("*.mxd")

for mxd in mxdList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = workspace + "\\" + mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxd + " is being processed"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(mxd)
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.findAndReplaceWorkspacePaths(r"C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DBO.DSD.VECTOR.sde",r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd): 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "SDE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd): 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "FILEGDB_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45949#M3687</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:47:55Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45950#M3688</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I started a new window and retyped the script and i got past the AttributeError: 'unicode' object has no attribute '_arc_object' error.&lt;BR /&gt;&lt;BR /&gt;but none of the workspace paths were updated.&lt;BR /&gt;&lt;BR /&gt;it error out on me on line 18.&lt;BR /&gt;&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That is because you are passing "mxd" as a string.&amp;nbsp; It needs to be a geoproc object.&amp;nbsp; This will work:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

path = r'C:\GIS\MAPBOOK\Proposed Zoning Book'
for fileName in os.listdir(path):
&amp;nbsp;&amp;nbsp; fullPath = os.path.join(path, fileName)
&amp;nbsp;&amp;nbsp; if os.path.isfile(fullPath):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; basename, extension = os.path.splitext(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if extension == ".mxd":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print fullPath
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "SDE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "FILEGDB_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:47:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45950#M3688</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2021-12-10T21:47:57Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45951#M3689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Tony:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would try to avoid using mxd as a variable that is referencing multiple objects.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2014 16:51:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45951#M3689</guid>
      <dc:creator>MichaelVolz</dc:creator>
      <dc:date>2014-01-29T16:51:18Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45952#M3690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I tried the following and got on line 21,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Proposed Zoning layer data source&amp;nbsp; in the 1st mxd did not update.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
C:\GIS\MAPBOOK\Proposed Zoning Book\Proposed_ZoningMapBook_Page_1.mxd
&amp;lt;geoprocessing Map object object at 0x02965400&amp;gt;

Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 21, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "FILEGDB_WORKSPACE", "TonyOneWay.DBO.City_Limits")
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\_mapping.py", line 680, in replaceDataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._arc_object.replaceDataSource(*gp_fixargs((workspace_path, workspace_type, dataset_name, validate), True)))
ValueError: Layer: Unexpected error

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, os
from arcpy import env
from arcpy import mapping


arcpy.env.overwriteOutput = True

path = r'C:\GIS\MAPBOOK\Proposed Zoning Book'
for fileName in os.listdir(path):
&amp;nbsp;&amp;nbsp; fullPath = os.path.join(path, fileName)
&amp;nbsp;&amp;nbsp; if os.path.isfile(fullPath):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; basename, extension = os.path.splitext(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if extension == ".mxd":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print fullPath
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "FILEGDB_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "FILEGDB_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save


&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:48:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45952#M3690</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:48:00Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45953#M3691</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;A helpful hint someone gave me when I first starting coding was to write nothing but comments before ever writing a single line of code. It accomplishes a few things. First, it ensures your code is always well documented. Secondly, it allows you to easily determine the intent of a line of code without having to decipher all of the variables and arguments, logic and flow in your code in order to understand the intent. Third, it allows you to quickly see how you can improve your code down the road. As you get better, you'll realize more efficient ways of doing things and you'll be able to easily see that in your code if you have a comment telling you the plain text intent and a line of code showing how you did it in the past.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Print statements are always really helpful too because you can watch your code process in the Python window and see where things get hung up, take too long or perhaps flow in a manner you didn't expect.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use both of those methods constantly it's made life much easier..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I took a closer look at your code and found that your lyr.replaceDataSource functions appeared to be indented too far. I also commented up some places where changes could be made to make things more efficient. A Syntax Check in your IDE should catch that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;One odd thing I did notice is that the path you're providing in your replaceDataSource function looks like an SDE Connection. If that's the case, you need to change the parameter from Shapefile Workspace to SDE.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Give it a shot and let us know how it goes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
from arcpy import env

# Create a variable called Workspace to hold the workspace path
# Doing it this way allows us to continually reference the 'workspace' variable
# whenever we want to get to that path. Also, use the raw string literal format to
# reference the path. The way you had it before is ok, but using forward slashes can
# cause issues with inconsistencies in future path definitions, especially when joining
# or concatenating paths.
workspace = r"C:\GIS\MAPBOOK\Proposed Zoning Book"
print "Workspace = " + str(workspace)

# Now set the Workspace by referencing the path contained in the 'workspace' variable
arcpy.env.workspace = workspace
print "Environment Workspace set to: " + str(workspace)

# Set the overwriteOutput environment parameter to True
arcpy.env.overwriteOutput = True
print "Overwrite Outputs: True"

# Create a list of MXDs in the workspace and populate the results in the variable
# 'mxdList'
mxdList = arcpy.ListFiles("*.mxd")

# Validate that results were actuall populated in the 'mxdList' variable and that it is
# not empty
# If the number of items (len) contained in the mxdList is equal to 0:
if len(mxdList) == 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Raise an error because there are no MXDs in the workspace!!
&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception("No MXDs were found in the workspace!")
# Otherwise:
else:
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Do nothing and continue
&amp;nbsp;&amp;nbsp;&amp;nbsp; pass

# Inform how many MXDs were returned from the Workspace and populated in the 'mxdList'
print "Found " + str(len(mxdList) + " MXDs in the Workspace")

# For each mxd populated in the mxdList:
for mxd in mxdList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Change the variable name to 'targetMXD' because you already have an 'mxd'
&amp;nbsp;&amp;nbsp;&amp;nbsp; # variable instantied as the current mxd being executed against in the loop.
&amp;nbsp;&amp;nbsp;&amp;nbsp; # This could cause problems with execution and at the least, can be confusing
&amp;nbsp;&amp;nbsp;&amp;nbsp; targetMXD = workspace + "//" + mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp; # For each layer in the 'targetMXD'
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(targetMXD)[0]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If the given 'lyr' is "PROPOSED ZONING"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Found Layer with name: " + str(lyr.name) + ". Replacing Datasource..."
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Replace the&amp;nbsp; Layer's datasource with the below
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Success"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Otherwise if the given 'lyr.name' is "CITY LIMITS"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Found Layer with name: " + str(lyr.name) + ". Replacing Datasource..."
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # replace the given Layer's Datasource with the below
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Success"
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Update: Wow. I stopped to take a call and this post progressed quick!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:48:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45953#M3691</guid>
      <dc:creator>JohnDye</dc:creator>
      <dc:date>2021-12-10T21:48:03Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45954#M3692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I tried the following and got on line 21,&lt;BR /&gt;Proposed Zoning layer data source&amp;nbsp; in the 1st mxd did not update.&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
C:\GIS\MAPBOOK\Proposed Zoning Book\Proposed_ZoningMapBook_Page_1.mxd
&amp;lt;geoprocessing Map object object at 0x02965400&amp;gt;

Traceback (most recent call last):
&amp;nbsp; File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 21, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "FILEGDB_WORKSPACE", "TonyOneWay.DBO.City_Limits")
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)
&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\_mapping.py", line 680, in replaceDataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._arc_object.replaceDataSource(*gp_fixargs((workspace_path, workspace_type, dataset_name, validate), True)))
ValueError: Layer: Unexpected error

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;Code&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, os
from arcpy import env
from arcpy import mapping


arcpy.env.overwriteOutput = True

path = r'C:\GIS\MAPBOOK\Proposed Zoning Book'
for fileName in os.listdir(path):
&amp;nbsp;&amp;nbsp; fullPath = os.path.join(path, fileName)
&amp;nbsp;&amp;nbsp; if os.path.isfile(fullPath):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; basename, extension = os.path.splitext(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if extension == ".mxd":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(fullPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print fullPath
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "PROPOSED ZONING":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "FILEGDB_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif lyr.name == "CITY LIMITS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "FILEGDB_WORKSPACE", "TonyOneWay.DBO.City_Limits")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save


&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So what I have provided does actually get you past your initial error/problem and now you have come across a new one: your layer reference is invalid.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;".DBO" sounds more like something from a SDE/Database schema, not a file geodatabase or something on disk in a folder.&amp;nbsp; SQLEXPRESS.gds?&amp;nbsp; I don't think I've seen that one before.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can access SDE data by pointing to the .sde file &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#/Layer/00s300000008000000/" rel="nofollow noopener noreferrer" target="_blank"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#/Layer/00s300000008000000/&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:48:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45954#M3692</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2021-12-10T21:48:06Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45955#M3693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes i did get past my initial problem. I am a newb to python. and thank you for the advice on comments.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the NEW location for Proposed Zoning and City Limits is in a SQL Server Express database.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code you provided gave me an error on line 37&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Workspace = C:\GIS\MAPBOOK\Proposed Zoning Book
Environment Workspace set to: C:\GIS\MAPBOOK\Proposed Zoning Book
Overwrite Outputs: True

Traceback (most recent call last):
&amp;nbsp; File "C:/GIS/Python Scripts/Change Data Source MXD_test.py", line 37, in &amp;lt;module&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Found " + str(len(mxdList) + " MXDs in the Workspace")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 21:48:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45955#M3693</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2021-12-10T21:48:08Z</dc:date>
    </item>
    <item>
      <title>Re: Update\change features data source.</title>
      <link>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45956#M3694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;my MXD's are located here C:\GIS\MAPBOOK\Proposed Zoning Book&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The layer Proposed Zoning was located here (O:\GIS\COUNTY MAPS\Proposed Zoning\FutureLandUseZoning_8_4_2011.shp)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The layer Proposed Zoning was moved to a SQL SQL Server Express instance database, located (r"C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is also other layers that i need the data source update like IMPACT AREA, FLOODWAY, Zoning, RAILROADS etc that are on an SDE SQL server.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer IMPACT AREA old location (C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DBO.DSD.VECTOR.sde\dsd."CC\TALMEIDA".DEVELOPEMENT\dsd."CC\TALMEIDA".CURRENT_IMPACT_AREA)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;New IMPACT AREA&amp;nbsp; location(C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.DEVELOPEMENT\DSD.DBO.CURRENT_IMPACT_AREA&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer FLOODWAY old location (C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DBO.DSD.VECTOR.sde\dsd."CC\TALMEIDA".FEMA09\dsd."CC\TALMEIDA".FEMA09_FLOODWAY)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;New FLOODWAY&amp;nbsp; location (C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.FEMA09\DSD.DBO.FEMA09_FLOODWAY)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Layer Zoning old&amp;nbsp; location (C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DBO.DSD.VECTOR.sde\dsd."CC\TALMEIDA".MUNICIPALITY\dsd."CC\TALMEIDA".CURRENT_ZONING)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;New Zoning location(C:\Users\t**a\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY\DSD.DBO.CURRENT_ZONING)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2014 20:04:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/update-change-features-data-source/m-p/45956#M3694</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2014-01-29T20:04:27Z</dc:date>
    </item>
  </channel>
</rss>

