Repository: getnikola/nikola
Issue: import_wordpress write_attachments_info failed

i have one article with an attachment site. import of this don't work. (the last `<wp:postmeta>` is copied from the actual data into this test installation)

```
$ rm -r new_site/ ; nikola import_wordpress --no-downloads /Users/davidak/sync-arbeit/demosite.wordpress.2016-02-23-attachment-page.xml
[2016-02-23T19:01:34Z] INFO: init: Created empty site at new_site.
[2016-02-23T19:01:34Z] INFO: import_wordpress: Downloading http://127.0.0.1:8081/wp-content/uploads/2016/02/first-test.png => new_site/files/wp-content/uploads/2016/02/first-test.png
[2016-02-23T19:01:34Z] INFO: import_wordpress: Downloading http://127.0.0.1:8081/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-300x187.png => new_site/files/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-300x187.png
[2016-02-23T19:01:34Z] INFO: import_wordpress: Downloading http://127.0.0.1:8081/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-1024x640.png => new_site/files/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-1024x640.png
[2016-02-23T19:01:34Z] INFO: import_wordpress: Downloading http://127.0.0.1:8081/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-150x150.png => new_site/files/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-150x150.png
{5: {'date_utc': '2016-02-23 18:09:53', 'wordpress_user_name': 'admin', 'files_meta': [{'height': 800, 'width': 1280}, {'size': 'medium', 'width': b'300', 'height': b'187'}, {'size': 'large', 'width': b'1024', 'height': b'640'}, {'size': 'thumbnail', 'width': b'150', 'height': b'150'}], 'files': ['/wp-content/uploads/2016/02/first-test.png', '/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-300x187.png', '/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-1024x640.png', '/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-150x150.png'], 'title': 'first-test'}}
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/doit/doit_cmd.py", line 168, in run
    return command.parse_execute(args)
  File "/usr/local/lib/python3.5/site-packages/doit/cmd_base.py", line 122, in parse_execute
    return self.execute(params, args)
  File "/usr/local/lib/python3.5/site-packages/nikola/plugin_categories.py", line 124, in execute
    return self._execute(options, args)
  File "/usr/local/lib/python3.5/site-packages/nikola/plugins/command/import_wordpress.py", line 332, in _execute
    self.import_posts(channel)
  File "/usr/local/lib/python3.5/site-packages/nikola/plugins/command/import_wordpress.py", line 1016, in import_posts
    self.process_item_if_post_or_page(item)
  File "/usr/local/lib/python3.5/site-packages/nikola/plugins/command/import_wordpress.py", line 1006, in process_item_if_post_or_page
    self.write_attachments_info(destination, attachments)
  File "/usr/local/lib/python3.5/site-packages/nikola/plugins/command/import_wordpress.py", line 986, in write_attachments_info
    file.write(json.dumps(attachments).encode('utf-8'))
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/__init__.py", line 230, in dumps
    return _default_encoder.encode(obj)
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/encoder.py", line 180, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: b'300' is not JSON serializable
```

i add some debug output:

```
    def write_attachments_info(self, path, attachments):
        """Write attachments info file."""
        with io.open(path, "wb") as file:
            print(attachments)
            file.write(json.dumps(attachments).encode('utf-8'))
```

and then manually tested the json without the problem:

```
$ python3
Python 3.5.1 (default, Jan 22 2016, 08:52:08)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> a="{5: {'date_utc': '2016-02-23 18:09:53', 'wordpress_user_name': 'admin', 'files_meta': [{'height': 800, 'width': 1280}, {'size': 'medium', 'width': b'300', 'height': b'187'}, {'size': 'large', 'width': b'1024', 'height': b'640'}, {'size': 'thumbnail', 'width': b'150', 'height': b'150'}], 'files': ['/wp-content/uploads/2016/02/first-test.png', '/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-300x187.png', '/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-1024x640.png', '/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-150x150.png'], 'title': 'first-test'}}"
>>> json.dumps(a).encode('utf-8')
b'"{5: {\\'date_utc\\': \\'2016-02-23 18:09:53\\', \\'wordpress_user_name\\': \\'admin\\', \\'files_meta\\': [{\\'height\\': 800, \\'width\\': 1280}, {\\'size\\': \\'medium\\', \\'width\\': b\\'300\\', \\'height\\': b\\'187\\'}, {\\'size\\': \\'large\\', \\'width\\': b\\'1024\\', \\'height\\': b\\'640\\'}, {\\'size\\': \\'thumbnail\\', \\'width\\': b\\'150\\', \\'height\\': b\\'150\\'}], \\'files\\': [\\'/wp-content/uploads/2016/02/first-test.png\\', \\'/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-300x187.png\\', \\'/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-1024x640.png\\', \\'/wp-content/uploads/2016/02/Bildschirmfoto-2010-12-14-um-19.47.29-150x150.png\\'], \\'title\\': \\'first-test\\'}}"'
```


Changed files:
nikola/plugins/command/import_wordpress.py

diff --git a/nikola/plugins/command/import_wordpress.py b/nikola/plugins/command/import_wordpress.py
index 436af1f69..9f2441934 100644
--- a/nikola/plugins/command/import_wordpress.py
+++ b/nikola/plugins/command/import_wordpress.py
@@ -562,8 +562,8 @@ class CommandImportWordpress(Command, ImportMixin):
                         meta = {}
                         meta['size'] = size.decode('utf-8')
                         if width_key in metadata[size_key][size] and height_key in metadata[size_key][size]:
-                            meta['width'] = metadata[size_key][size][width_key]
-                            meta['height'] = metadata[size_key][size][height_key]
+                            meta['width'] = int(metadata[size_key][size][width_key])
+                            meta['height'] = int(metadata[size_key][size][height_key])
 
                         path = urlparse(url).path
                         dst_path = os.path.join(*([self.output_folder, 'files'] + list(path.split('/'))))