<?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: Meraki rest API doesnt accept None as an argument Python (probably noob question) in Network Platform API</title>
    <link>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431180#M5080</link>
    <description>&lt;P&gt;When I leave them out it works!&lt;/P&gt;&lt;P&gt;From my understanding I'd had to send the entire thing. So what I tried to do is do a get request on the port, alter the JSON response to the VLAN I want, and send the edited response back. Seems I can send any amount of key value pairs I want.&lt;/P&gt;&lt;P&gt;Although, it also seems that sending a wholly filled JSON thing with all the values does make the system go places.&lt;/P&gt;</description>
    <pubDate>Thu, 20 Feb 2020 14:55:05 GMT</pubDate>
    <dc:creator>Notworks</dc:creator>
    <dc:date>2020-02-20T14:55:05Z</dc:date>
    <item>
      <title>Meraki rest API doesnt accept None as an argument Python (probably noob question)</title>
      <link>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431178#M5078</link>
      <description>&lt;P&gt;Hello my Meraki friends,&lt;/P&gt;&lt;P&gt;This is probably a noob question. I am trying to programmatically edit a VLAN by using the rest API with Python, however I ran into some troubles.&lt;/P&gt;&lt;P&gt;While sending the following json using using requests.put: &lt;A href="https://nxxx.meraki.com/api/v0/devices/XXXX-XXXX-XXXX/switchPorts/[portnumber]" target="_blank" rel="noopener nofollow noreferrer"&gt;https://nxxx.meraki.com/api/v0/devices/XXXX-XXXX-XXXX/switchPorts/[portnumber]&lt;/A&gt;&lt;/P&gt;&lt;P&gt;  Name Value Type&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'accessPolicyNumber'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'allowedVlans'&lt;/TD&gt;&lt;TD&gt;'all'&lt;/TD&gt;&lt;TD&gt;str&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'enabled'&lt;/TD&gt;&lt;TD&gt;True&lt;/TD&gt;&lt;TD&gt;bool&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'isolationEnabled'&lt;/TD&gt;&lt;TD&gt;False&lt;/TD&gt;&lt;TD&gt;bool&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'linkNegotiation'&lt;/TD&gt;&lt;TD&gt;'Auto negotiate'&lt;/TD&gt;&lt;TD&gt;str&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'macWhitelist'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'name'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'number'&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;int&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'poeEnabled'&lt;/TD&gt;&lt;TD&gt;True&lt;/TD&gt;&lt;TD&gt;bool&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'portScheduleId'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'rstpEnabled'&lt;/TD&gt;&lt;TD&gt;True&lt;/TD&gt;&lt;TD&gt;bool&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'stickyMacWhitelist'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'stickyMacWhitelistLimit'&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;int&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'stpGuard'&lt;/TD&gt;&lt;TD&gt;'disabled'&lt;/TD&gt;&lt;TD&gt;str&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'tags'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'type'&lt;/TD&gt;&lt;TD&gt;'trunk'&lt;/TD&gt;&lt;TD&gt;str&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'udld'&lt;/TD&gt;&lt;TD&gt;'Alert only'&lt;/TD&gt;&lt;TD&gt;str&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'vlan'&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;int&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;'voiceVlan'&lt;/TD&gt;&lt;TD&gt;None&lt;/TD&gt;&lt;TD&gt;NoneType&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt; &lt;/TD&gt;&lt;TD&gt;__len__&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;int&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;I get the following response: &lt;/P&gt;&lt;P&gt;&lt;EM&gt;'errors': ['Cannot set whitelist on a trunk port', 'Invalid MAC whitelist. To disable MAC whitelist, set accessPolicyNumber to null.']&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;If you take a look at the first entry of the table above, 'accessPolicyNumber' is indeed filled with a NoneType thing, which is the python equivalent to a null character (right?). Setting 'stickyMacWhitelistLimit' to None is also not an option, since it has to be an integer, while strangely enough if i use get, 'stickyMacWhitelistLimit' is filled with a null character. (which was my motivation to put 0 there in the first place, leading to this).&lt;/P&gt;&lt;P&gt;API command documentation I used is &lt;A title="documentation" href="https://dashboard.meraki.com/api_docs#switch-ports" target="_self" rel="nofollow noopener noreferrer"&gt;this&lt;/A&gt;&lt;A href="https://dashboard.meraki.com/api_docs#switch-ports" target="_blank" rel="noopener nofollow noreferrer"&gt;.&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thanks for your time!&lt;/P&gt;</description>
      <pubDate>Thu, 20 Feb 2020 10:58:09 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431178#M5078</guid>
      <dc:creator>Notworks</dc:creator>
      <dc:date>2020-02-20T10:58:09Z</dc:date>
    </item>
    <item>
      <title>Re: Meraki rest API doesnt accept None as an argument Python (probably noob question)</title>
      <link>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431179#M5079</link>
      <description>&lt;P&gt;None is null, yes.&lt;/P&gt;&lt;P&gt;That looks like you're trying to use Update Device Switch Port?&lt;/P&gt;&lt;P&gt;What happens when you leave the items with value None out? I ran into this with... I forget the call... a while ago. It may have been this one. The GET request returns None options that'll make it unhappy if you include them with a PUT.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Feb 2020 14:19:24 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431179#M5079</guid>
      <dc:creator>Nash</dc:creator>
      <dc:date>2020-02-20T14:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: Meraki rest API doesnt accept None as an argument Python (probably noob question)</title>
      <link>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431180#M5080</link>
      <description>&lt;P&gt;When I leave them out it works!&lt;/P&gt;&lt;P&gt;From my understanding I'd had to send the entire thing. So what I tried to do is do a get request on the port, alter the JSON response to the VLAN I want, and send the edited response back. Seems I can send any amount of key value pairs I want.&lt;/P&gt;&lt;P&gt;Although, it also seems that sending a wholly filled JSON thing with all the values does make the system go places.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Feb 2020 14:55:05 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431180#M5080</guid>
      <dc:creator>Notworks</dc:creator>
      <dc:date>2020-02-20T14:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: Meraki rest API doesnt accept None as an argument Python (probably noob question)</title>
      <link>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431181#M5081</link>
      <description>&lt;P&gt;Finally got a chance to dig in my scripts, and it was this call.&lt;/P&gt;&lt;P&gt;This is probably ugly as heck, but my apparent solution from October:&lt;/P&gt;&lt;PRE class="lia-code-sample language-markup"&gt;&lt;CODE&gt;for port in switchportsList:
    switchNum = port['number']
    empties = []
    for key, value in port.items():
        if value == None:
            empties.append(key)
    for item in empties:
        try:
            port.pop(item)
        except:
            print(f"Couldn't pop {item}")
    putSwitchport(arg_apikey, arg_serial, port, switchNum, shard)&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 20 Feb 2020 15:08:35 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/meraki-rest-api-doesnt-accept-none-as-an-argument-python/m-p/5431181#M5081</guid>
      <dc:creator>Nash</dc:creator>
      <dc:date>2020-02-20T15:08:35Z</dc:date>
    </item>
  </channel>
</rss>

