相关疑难解决方法(0)

python字符串之前的ab前缀是什么意思?

在python源代码中,我偶然发现我在字符串之前看到了一个小b:

b"abcdef"
Run Code Online (Sandbox Code Playgroud)

我知道u前缀表示unicode字符串,以及r原始字符串文字的前缀.

什么b样的代码和哪种源代码是有用的,因为它看起来完全像没有任何前缀的普通字符串?

python syntax byte python-3.x

97
推荐指数
2
解决办法
4万
查看次数

在Python 3中禁止/打印没有b'前缀的字节

只是发布这个,所以我可以稍后搜索它,因为它似乎总是让我感到困惑:

$ python3.2
Python 3.2 (r32:88445, Oct 20 2012, 14:09:50) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import curses
>>> print(curses.version)
b'2.2'
>>> print(str(curses.version))
b'2.2'
>>> print(curses.version.encode('utf-8'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'encode'
>>> print(str(curses.version).encode('utf-8'))
b"b'2.2'"
Run Code Online (Sandbox Code Playgroud)

问题:如何bytes在Python 3中打印二进制()字符串,没有b'前缀?

python string python-3.x

88
推荐指数
5
解决办法
7万
查看次数

在Python 3中删除字符串文字前面的'b'字符

我是python编程的新手,我有点困惑.我尝试从字符串中获取字节以进行哈希和加密,但我得到了

b'...'
Run Code Online (Sandbox Code Playgroud)

b字符串前面的字符就像下面的例子一样.有没有办法避免这种情况?.任何人都可以提供解决方案吗?对不起这个愚蠢的问题

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

 print b'my secret data'
Run Code Online (Sandbox Code Playgroud)

python string encryption binary

51
推荐指数
3
解决办法
9万
查看次数

如何在 Django 管理界面中显示 BinaryField 图像预览?

我有一个带有 Django 后端的 Web 项目,我决定将图像存储为 BinaryField,这对我来说在进行备份和恢复时似乎更方便。

首先我创建了模型:

class ThermalSource(ClusterUnit):
    ...
    scheme_image = models.BinaryField(verbose_name='Scheme', blank=True, null=True, editable=True)
    ...
Run Code Online (Sandbox Code Playgroud)

然后创建序列化器以在视图集中使用(我知道它与管理界面无关,但也许它会很有用):

class Base64BinaryField(serializers.Field):

    def to_representation(self, value):
        from base64 import b64encode
        return b64encode(value)

    def to_internal_value(self, data):
        from base64 import b64decode
        return b64decode(data)


class ThermalSourceSerializer(APAMModelSerializer):
    ...
    scheme_image_base64 = Base64BinaryField(source='scheme_image')
    ...
Run Code Online (Sandbox Code Playgroud)

现在我可以通过 Django REST Framework 正确获取和设置转换为 Base64 的图像。

管理类ThermalSource现在看起来是这样:

class ThermalSourceForm(forms.ModelForm):

    scheme_image = forms.FileField(required=False)

    def save(self, commit=True):
        if self.cleaned_data.get('scheme_image') is not None \
                and hasattr(self.cleaned_data['scheme_image'], 'file'):
            data = self.cleaned_data['scheme_image'].file.read()
            self.instance.scheme_image = data
        return self.instance …
Run Code Online (Sandbox Code Playgroud)

python django

3
推荐指数
1
解决办法
2474
查看次数

urllib3 HTTPResponse.read() 返回空字节

我正在尝试阅读网站的内容,但我得到一个空的字节对象b''.

import urllib3
from urllib3 import PoolManager
urllib3.disable_warnings()
https = PoolManager()

r = https.request('GET', 'https://minemen.club/leaderboards/practice/')

print(r.status)
print(r.read())
Run Code Online (Sandbox Code Playgroud)

当我在网络浏览器中打开 URL 时,我看到了该网站,结果r.status为 200(成功)。

为什么不r.read()返回内容?

python urllib3

3
推荐指数
1
解决办法
864
查看次数

标签 统计

python ×5

python-3.x ×2

string ×2

binary ×1

byte ×1

django ×1

encryption ×1

syntax ×1

urllib3 ×1